author | lancea |
Wed, 13 Mar 2019 14:10:18 -0400 | |
changeset 54106 | 9a90236ab64c |
parent 54057 | 687e10fefa11 |
permissions | -rw-r--r-- |
50444
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
1 |
/* |
54057 | 2 |
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. |
50444
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
4 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
7 |
* published by the Free Software Foundation. Oracle designates this |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
8 |
* particular file as subject to the "Classpath" exception as provided |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
9 |
* by Oracle in the LICENSE file that accompanied this code. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
10 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
15 |
* accompanied this code). |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
16 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
17 |
* You should have received a copy of the GNU General Public License version |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
20 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
22 |
* or visit www.oracle.com if you need additional information or have any |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
23 |
* questions. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
24 |
*/ |
24197 | 25 |
|
50444
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
26 |
/** |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
27 |
* The standard classes and interfaces that a third party vendor has to |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
28 |
* use in its implementation of a synchronization provider. These classes and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
29 |
* interfaces are referred to as the Service Provider Interface (SPI). To make it possible |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
30 |
* for a <code>RowSet</code> object to use an implementation, the vendor must register |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
31 |
* it with the <code>SyncFactory</code> singleton. (See the class comment for |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
32 |
* <code>SyncProvider</code> for a full explanation of the registration process and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
33 |
* the naming convention to be used.) |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
34 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
35 |
* <h2>Table of Contents</h2> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
36 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
37 |
* <li><a href="#pkgspec">1.0 Package Specification</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
38 |
* <li><a href="#arch">2.0 Service Provider Architecture</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
39 |
* <li><a href="#impl">3.0 Implementer's Guide</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
40 |
* <li><a href="#resolving">4.0 Resolving Synchronization Conflicts</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
41 |
* <li><a href="#relspec">5.0 Related Specifications</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
42 |
* <li><a href="#reldocs">6.0 Related Documentation</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
43 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
44 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
45 |
* <h3><a id="pkgspec">1.0 Package Specification</a></h3> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
46 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
47 |
* The following classes and interfaces make up the <code>javax.sql.rowset.spi</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
48 |
* package: |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
49 |
* <UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
50 |
* <LI><code>SyncFactory</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
51 |
* <LI><code>SyncProvider</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
52 |
* <LI><code>SyncFactoryException</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
53 |
* <LI><code>SyncProviderException</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
54 |
* <LI><code>SyncResolver</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
55 |
* <LI><code>XmlReader</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
56 |
* <LI><code>XmlWriter</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
57 |
* <LI><code>TransactionalWriter</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
58 |
* </UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
59 |
* The following interfaces, in the <code>javax.sql</code> package, are also part of the SPI: |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
60 |
* <UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
61 |
* <LI><code>RowSetReader</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
62 |
* <LI><code>RowSetWriter</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
63 |
* </UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
64 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
65 |
* A <code>SyncProvider</code> implementation provides a disconnected <code>RowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
66 |
* object with the mechanisms for reading data into it and for writing data that has been |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
67 |
* modified in it |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
68 |
* back to the underlying data source. A <i>reader</i>, a <code>RowSetReader</code> or |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
69 |
* <code>XMLReader</code> object, reads data into a <code>RowSet</code> object when the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
70 |
* <code>CachedRowSet</code> methods <code>execute</code> or <code>populate</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
71 |
* are called. A <i>writer</i>, a <code>RowSetWriter</code> or <code>XMLWriter</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
72 |
* object, writes changes back to the underlying data source when the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
73 |
* <code>CachedRowSet</code> method <code>acceptChanges</code> is called. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
74 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
75 |
* The process of writing changes in a <code>RowSet</code> object to its data source |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
76 |
* is known as <i>synchronization</i>. The <code>SyncProvider</code> implementation that a |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
77 |
* <code>RowSet</code> object is using determines the level of synchronization that the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
78 |
* <code>RowSet</code> object's writer uses. The various levels of synchronization are |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
79 |
* referred to as <i>grades</i>. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
80 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
81 |
* The lower grades of synchronization are |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
82 |
* known as <i>optimistic</i> concurrency levels because they optimistically |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
83 |
* assume that there will be no conflicts or very few conflicts. A conflict exists when |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
84 |
* the same data modified in the <code>RowSet</code> object has also been modified |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
85 |
* in the data source. Using the optimistic concurrency model means that if there |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
86 |
* is a conflict, modifications to either the data source or the <code>RowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
87 |
* object will be lost. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
88 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
89 |
* Higher grades of synchronization are called <i>pessimistic</i> because they assume |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
90 |
* that others will be accessing the data source and making modifications. These |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
91 |
* grades set varying levels of locks to increase the chances that no conflicts |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
92 |
* occur. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
93 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
94 |
* The lowest level of synchronization is simply writing any changes made to the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
95 |
* <code>RowSet</code> object to its underlying data source. The writer does |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
96 |
* nothing to check for conflicts. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
97 |
* If there is a conflict and the data |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
98 |
* source values are overwritten, the changes other parties have made by to the data |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
99 |
* source are lost. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
100 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
101 |
* The <code>RIXMLProvider</code> implementation uses the lowest level |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
102 |
* of synchronization and just writes <code>RowSet</code> changes to the data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
103 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
104 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
105 |
* For the next level up, the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
106 |
* writer checks to see if there are any conflicts, and if there are, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
107 |
* it does not write anything to the data source. The problem with this concurrency |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
108 |
* level is that if another party has modified the corresponding data in the data source |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
109 |
* since the <code>RowSet</code> object got its data, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
110 |
* the changes made to the <code>RowSet</code> object are lost. The |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
111 |
* <code>RIOptimisticProvider</code> implementation uses this level of synchronization. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
112 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
113 |
* At higher levels of synchronization, referred to as pessimistic concurrency, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
114 |
* the writer take steps to avoid conflicts by setting locks. Setting locks |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
115 |
* can vary from setting a lock on a single row to setting a lock on a table |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
116 |
* or the entire data source. The level of synchronization is therefore a tradeoff |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
117 |
* between the ability of users to access the data source concurrently and the ability |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
118 |
* of the writer to keep the data in the <code>RowSet</code> object and its data source |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
119 |
* synchronized. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
120 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
121 |
* It is a requirement that all disconnected <code>RowSet</code> objects |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
122 |
* (<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
123 |
* and <code>WebRowSet</code> objects) obtain their <code>SyncProvider</code> objects |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
124 |
* from the <code>SyncFactory</code> mechanism. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
125 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
126 |
* The reference implementation (RI) provides two synchronization providers. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
127 |
* <UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
128 |
* <LI><b><code>RIOptimisticProvider</code></b> <br> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
129 |
* The default provider that the <code>SyncFactory</code> instance will |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
130 |
* supply to a disconnected <code>RowSet</code> object when no provider |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
131 |
* implementation is specified.<BR> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
132 |
* This synchronization provider uses an optimistic concurrency model, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
133 |
* assuming that there will be few conflicts among users |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
134 |
* who are accessing the same data in a database. It avoids |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
135 |
* using locks; rather, it checks to see if there is a conflict |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
136 |
* before trying to synchronize the <code>RowSet</code> object and the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
137 |
* data source. If there is a conflict, it does nothing, meaning that |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
138 |
* changes to the <code>RowSet</code> object are not persisted to the data |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
139 |
* source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
140 |
* <LI><B><code>RIXMLProvider</code></B> <BR> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
141 |
* A synchronization provider that can be used with a |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
142 |
* <code>WebRowSet</code> object, which is a rowset that can be written |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
143 |
* in XML format or read from XML format. The |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
144 |
* <code>RIXMLProvider</code> implementation does no checking at all for |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
145 |
* conflicts and simply writes any updated data in the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
146 |
* <code>WebRowSet</code> object to the underlying data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
147 |
* <code>WebRowSet</code> objects use this provider when they are |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
148 |
* dealing with XML data. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
149 |
* </UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
150 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
151 |
* These <code>SyncProvider</code> implementations |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
152 |
* are bundled with the reference implementation, which makes them always available to |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
153 |
* <code>RowSet</code> implementations. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
154 |
* <code>SyncProvider</code> implementations make themselves available by being |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
155 |
* registered with the <code>SyncFactory</code> singleton. When a <code>RowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
156 |
* object requests a provider, by specifying it in the constructor or as an argument to the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
157 |
* <code>CachedRowSet</code> method <code>setSyncProvider</code>, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
158 |
* the <code>SyncFactory</code> singleton |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
159 |
* checks to see if the requested provider has been registered with it. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
160 |
* If it has, the <code>SyncFactory</code> creates an instance of it and passes it to the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
161 |
* requesting <code>RowSet</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
162 |
* If the <code>SyncProvider</code> implementation that is specified has not been registered, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
163 |
* the <code>SyncFactory</code> singleton causes a <code>SyncFactoryException</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
164 |
* to be thrown. If no provider is specified, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
165 |
* the <code>SyncFactory</code> singleton will create an instance of the default |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
166 |
* provider implementation, <code>RIOptimisticProvider</code>, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
167 |
* and pass it to the requesting <code>RowSet</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
168 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
169 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
170 |
* If a <code>WebRowSet</code> object does not specify a provider in its constructor, the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
171 |
* <code>SyncFactory</code> will give it an instance of <code>RIOptimisticProvider</code>. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
172 |
* However, the constructor for <code>WebRowSet</code> is implemented to set the provider |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
173 |
* to the <code>RIXMLProvider</code>, which reads and writes a <code>RowSet</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
174 |
* in XML format. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
175 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
176 |
* See the <a href="SyncProvider.html">SyncProvider</a> class |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
177 |
* specification for further details. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
178 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
179 |
* Vendors may develop a <code>SyncProvider</code> implementation with any one of the possible |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
180 |
* levels of synchronization, thus giving <code>RowSet</code> objects a choice of |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
181 |
* synchronization mechanisms. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
182 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
183 |
* <h3><a id="arch">2.0 Service Provider Interface Architecture</a></h3> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
184 |
* <b>2.1 Overview</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
185 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
186 |
* The Service Provider Interface provides a pluggable mechanism by which |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
187 |
* <code>SyncProvider</code> implementations can be registered and then generated when |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
188 |
* required. The lazy reference mechanism employed by the <code>SyncFactory</code> limits |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
189 |
* unnecessary resource consumption by not creating an instance until it is |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
190 |
* required by a disconnected |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
191 |
* <code>RowSet</code> object. The <code>SyncFactory</code> class also provides |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
192 |
* a standard API to configure logging options and streams that <b>may</b> be provided |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
193 |
* by a particular <code>SyncProvider</code> implementation. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
194 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
195 |
* <b>2.2 Registering with the <code>SyncFactory</code></b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
196 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
197 |
* A third party <code>SyncProvider</code> implementation must be registered with the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
198 |
* <code>SyncFactory</code> in order for a disconnected <code>RowSet</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
199 |
* to obtain it and thereby use its <code>javax.sql.RowSetReader</code> and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
200 |
* <code>javax.sql.RowSetWriter</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
201 |
* implementations. The following registration mechanisms are available to all |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
202 |
* <code>SyncProvider</code> implementations: |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
203 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
204 |
* <li><b>System properties</b> - Properties set at the command line. These |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
205 |
* properties are set at run time and apply system-wide per invocation of the Java |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
206 |
* application. See the section <a href="#reldocs">"Related Documentation"</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
207 |
* further related information. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
208 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
209 |
* <li><b>Property Files</b> - Properties specified in a standard property file. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
210 |
* This can be specified using a System Property or by modifying a standard |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
211 |
* property file located in the platform run-time. The |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
212 |
* reference implementation of this technology includes a standard property |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
213 |
* file than can be edited to add additional <code>SyncProvider</code> objects. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
214 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
215 |
* <li><b>JNDI Context</b> - Available providers can be registered on a JNDI |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
216 |
* context. The <code>SyncFactory</code> will attempt to load <code>SyncProvider</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
217 |
* objects bound to the context and register them with the factory. This |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
218 |
* context must be supplied to the <code>SyncFactory</code> for the mechanism to |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
219 |
* function correctly. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
220 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
221 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
222 |
* Details on how to specify the system properties or properties in a property file |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
223 |
* and how to configure the JNDI Context are explained in detail in the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
224 |
* <a href="SyncFactory.html"><code>SyncFactory</code></a> class description. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
225 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
226 |
* <b>2.3 SyncFactory Provider Instance Generation Policies</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
227 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
228 |
* The <code>SyncFactory</code> generates a requested <code>SyncProvider</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
229 |
* object if the provider has been correctly registered. The |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
230 |
* following policies are adhered to when either a disconnected <code>RowSet</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
231 |
* is instantiated with a specified <code>SyncProvider</code> implementation or is |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
232 |
* reconfigured at runtime with an alternative <code>SyncProvider</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
233 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
234 |
* <li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
235 |
* contains <i>no</i> reference to the provider, a <code>SyncFactoryException</code> is |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
236 |
* thrown. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
237 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
238 |
* <li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
239 |
* contains a reference to the provider, the requested provider is supplied. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
240 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
241 |
* <li> If no <code>SyncProvider</code> object is specified, the reference |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
242 |
* implementation provider <code>RIOptimisticProvider</code> is supplied. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
243 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
244 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
245 |
* These policies are explored in more detail in the <a href="SyncFactory.html"> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
246 |
* <code>SyncFactory</code></a> class. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
247 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
248 |
* <h3><a id="impl">3.0 SyncProvider Implementer's Guide</a></h3> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
249 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
250 |
* <b>3.1 Requirements</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
251 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
252 |
* A compliant <code>SyncProvider</code> implementation that is fully pluggable |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
253 |
* into the <code>SyncFactory</code> <b>must</b> extend and implement all |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
254 |
* abstract methods in the <a href="SyncProvider.html"><code>SyncProvider</code></a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
255 |
* class. In addition, an implementation <b>must</b> determine the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
256 |
* grade, locking and updatable view capabilities defined in the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
257 |
* <code>SyncProvider</code> class definition. One or more of the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
258 |
* <code>SyncProvider</code> description criteria <b>must</b> be supported. It |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
259 |
* is expected that vendor implementations will offer a range of grade, locking, and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
260 |
* updatable view capabilities. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
261 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
262 |
* Furthermore, the <code>SyncProvider</code> naming convention <b>must</b> be followed as |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
263 |
* detailed in the <a href="SyncProvider.html"><code>SyncProvider</code></a> class |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
264 |
* description. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
265 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
266 |
* <b>3.2 Grades</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
267 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
268 |
* JSR 114 defines a set of grades to describe the quality of synchronization |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
269 |
* a <code>SyncProvider</code> object can offer a disconnected <code>RowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
270 |
* object. These grades are listed from the lowest quality of service to the highest. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
271 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
272 |
* <li><b>GRADE_NONE</b> - No synchronization with the originating data source is |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
273 |
* provided. A <code>SyncProvider</code> implementation returning this grade will simply |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
274 |
* attempt to write any data that has changed in the <code>RowSet</code> object to the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
275 |
*underlying data source, overwriting whatever is there. No attempt is made to compare |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
276 |
* original values with current values to see if there is a conflict. The |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
277 |
* <code>RIXMLProvider</code> is implemented with this grade. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
278 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
279 |
* <li><b>GRADE_CHECK_MODIFIED_AT_COMMIT</b> - A low grade of optimistic synchronization. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
280 |
* A <code>SyncProvider</code> implementation returning this grade |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
281 |
* will check for conflicts in rows that have changed between the last synchronization |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
282 |
* and the current synchronization under way. Any changes in the originating data source |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
283 |
* that have been modified will not be reflected in the disconnected <code>RowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
284 |
* object. If there are no conflicts, changes in the <code>RowSet</code> object will be |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
285 |
* written to the data source. If there are conflicts, no changes are written. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
286 |
* The <code>RIOptimisticProvider</code> implementation uses this grade. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
287 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
288 |
* <li><b>GRADE_CHECK_ALL_AT_COMMIT</b> - A high grade of optimistic synchronization. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
289 |
* A <code>SyncProvider</code> implementation returning this grade |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
290 |
* will check all rows, including rows that have not changed in the disconnected |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
291 |
* <code>RowSet</code> object. In this way, any changes to rows in the underlying |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
292 |
* data source will be reflected in the disconnected <code>RowSet</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
293 |
* when the synchronization finishes successfully. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
294 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
295 |
* <li><b>GRADE_LOCK_WHEN_MODIFIED</b> - A pessimistic grade of synchronization. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
296 |
* <code>SyncProvider</code> implementations returning this grade will lock |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
297 |
* the row in the originating data source that corresponds to the row being changed |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
298 |
* in the <code>RowSet</code> object to reduce the possibility of other |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
299 |
* processes modifying the same data in the data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
300 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
301 |
* <li><b>GRADE_LOCK_WHEN_LOADED</b> - A higher pessimistic synchronization grade. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
302 |
* A <code>SyncProvider</code> implementation returning this grade will lock |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
303 |
* the entire view and/or table affected by the original query used to |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
304 |
* populate a <code>RowSet</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
305 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
306 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
307 |
* <b>3.3 Locks</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
308 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
309 |
* JSR 114 defines a set of constants that specify whether any locks have been |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
310 |
* placed on a <code>RowSet</code> object's underlying data source and, if so, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
311 |
* on which constructs the locks are placed. These locks will remain on the data |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
312 |
* source while the <code>RowSet</code> object is disconnected from the data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
313 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
314 |
* These constants <b>should</b> be considered complementary to the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
315 |
* grade constants. The default setting for the majority of grade settings requires |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
316 |
* that no data source locks remain when a <code>RowSet</code> object is disconnected |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
317 |
* from its data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
318 |
* The grades <code>GRADE_LOCK_WHEN_MODIFIED</code> and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
319 |
* <code>GRADE_LOCK_WHEN_LOADED</code> allow a disconnected <code>RowSet</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
320 |
* to have a fine-grained control over the degree of locking. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
321 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
322 |
* <li><b>DATASOURCE_NO_LOCK</b> - No locks remain on the originating data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
323 |
* This is the default lock setting for all <code>SyncProvider</code> implementations |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
324 |
* unless otherwise directed by a <code>RowSet</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
325 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
326 |
* <li><b>DATASOURCE_ROW_LOCK</b> - A lock is placed on the rows that are touched by |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
327 |
* the original SQL query used to populate the <code>RowSet</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
328 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
329 |
* <li><b>DATASOURCE_TABLE_LOCK</b> - A lock is placed on all tables that are touched |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
330 |
* by the query that was used to populate the <code>RowSet</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
331 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
332 |
* <li><b>DATASOURCE_DB_LOCK</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
333 |
* A lock is placed on the entire data source that is used by the <code>RowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
334 |
* object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
335 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
336 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
337 |
* <b>3.4 Updatable Views</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
338 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
339 |
* A <code>RowSet</code> object may be populated with data from an SQL <code>VIEW</code>. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
340 |
* The following constants indicate whether a <code>SyncProvider</code> object can |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
341 |
* update data in the table or tables from which the <code>VIEW</code> was derived. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
342 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
343 |
* <li><b>UPDATABLE_VIEW_SYNC</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
344 |
* Indicates that a <code>SyncProvider</code> implementation supports synchronization |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
345 |
* to the table or tables from which the SQL <code>VIEW</code> used to populate |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
346 |
* a <code>RowSet</code> object is derived. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
347 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
348 |
* <li><b>NONUPDATABLE_VIEW_SYNC</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
349 |
* Indicates that a <code>SyncProvider</code> implementation does <b>not</b> support |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
350 |
* synchronization to the table or tables from which the SQL <code>VIEW</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
351 |
* used to populate a <code>RowSet</code> object is derived. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
352 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
353 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
354 |
* <b>3.5 Usage of <code>SyncProvider</code> Grading and Locking</b> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
355 |
* <p> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
356 |
* In the example below, the reference <code>CachedRowSetImpl</code> implementation |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
357 |
* reconfigures its current <code>SyncProvider</code> object by calling the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
358 |
* <code>setSyncProvider</code> method.<br> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
359 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
360 |
* <PRE> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
361 |
* CachedRowSetImpl crs = new CachedRowSetImpl(); |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
362 |
* crs.setSyncProvider("com.foo.bar.HASyncProvider"); |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
363 |
* </PRE> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
364 |
* An application can retrieve the <code>SyncProvider</code> object currently in use |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
365 |
* by a disconnected <code>RowSet</code> object. It can also retrieve the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
366 |
* grade of synchronization with which the provider was implemented and the degree of |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
367 |
* locking currently in use. In addition, an application has the flexibility to set |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
368 |
* the degree of locking to be used, which can increase the possibilities for successful |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
369 |
* synchronization. These operation are shown in the following code fragment. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
370 |
* <PRE> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
371 |
* SyncProvider sync = crs.getSyncProvider(); |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
372 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
373 |
* switch (sync.getProviderGrade()) { |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
374 |
* case: SyncProvider.GRADE_CHECK_ALL_AT_COMMIT |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
375 |
* //A high grade of optimistic synchronization |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
376 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
377 |
* case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
378 |
* //A low grade of optimistic synchronization |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
379 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
380 |
* case: SyncProvider.GRADE_LOCK_WHEN_LOADED |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
381 |
* // A pessimistic synchronization grade |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
382 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
383 |
* case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
384 |
* // A pessimistic synchronization grade |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
385 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
386 |
* case: SyncProvider.GRADE_NONE |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
387 |
* // No synchronization with the originating data source provided |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
388 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
389 |
* } |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
390 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
391 |
* switch (sync.getDataSourcLock() { |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
392 |
* case: SyncProvider.DATASOURCE_DB_LOCK |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
393 |
* // A lock is placed on the entire datasource that is used by the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
394 |
* // <code>RowSet</code> object |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
395 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
396 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
397 |
* case: SyncProvider.DATASOURCE_NO_LOCK |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
398 |
* // No locks remain on the originating data source. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
399 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
400 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
401 |
* case: SyncProvider.DATASOURCE_ROW_LOCK |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
402 |
* // A lock is placed on the rows that are touched by the original |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
403 |
* // SQL statement used to populate |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
404 |
* // the RowSet object that is using the SyncProvider |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
405 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
406 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
407 |
* case: DATASOURCE_TABLE_LOCK |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
408 |
* // A lock is placed on all tables that are touched by the original |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
409 |
* // SQL statement used to populated |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
410 |
* // the RowSet object that is using the SyncProvider |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
411 |
* break; |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
412 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
413 |
* </PRE> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
414 |
* It is also possible using the static utility method in the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
415 |
* <code>SyncFactory</code> class to determine the list of <code>SyncProvider</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
416 |
* implementations currently registered with the <code>SyncFactory</code>. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
417 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
418 |
* <pre> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
419 |
* Enumeration e = SyncFactory.getRegisteredProviders(); |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
420 |
* </pre> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
421 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
422 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
423 |
* <h3><a id="resolving">4.0 Resolving Synchronization Conflicts</a></h3> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
424 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
425 |
* The interface <code>SyncResolver</code> provides a way for an application to |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
426 |
* decide manually what to do when a conflict occurs. When the <code>CachedRowSet</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
427 |
* method <code>acceptChanges</code> finishes and has detected one or more conflicts, |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
428 |
* it throws a <code>SyncProviderException</code> object. An application can |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
429 |
* catch the exception and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
430 |
* have it retrieve a <code>SyncResolver</code> object by calling the method |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
431 |
* <code>SyncProviderException.getSyncResolver()</code>. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
432 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
433 |
* A <code>SyncResolver</code> object, which is a special kind of |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
434 |
* <code>CachedRowSet</code> object or |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
435 |
* a <code>JdbcRowSet</code> object that has implemented the <code>SyncResolver</code> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
436 |
* interface, examines the conflicts row by row. It is a duplicate of the |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
437 |
* <code>RowSet</code> object being synchronized except that it contains only the data |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
438 |
* from the data source this is causing a conflict. All of the other column values are |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
439 |
* set to <code>null</code>. To navigate from one conflict value to another, a |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
440 |
* <code>SyncResolver</code> object provides the methods <code>nextConflict</code> and |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
441 |
* <code>previousConflict</code>. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
442 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
443 |
* The <code>SyncResolver</code> interface also |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
444 |
* provides methods for doing the following: |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
445 |
* <UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
446 |
* <LI>finding out whether the conflict involved an update, a delete, or an insert |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
447 |
* <LI>getting the value in the data source that caused the conflict |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
448 |
* <LI>setting the value that should be in the data source if it needs to be changed |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
449 |
* or setting the value that should be in the <code>RowSet</code> object if it needs |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
450 |
* to be changed |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
451 |
* </UL> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
452 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
453 |
* When the <code>CachedRowSet</code> method <code>acceptChanges</code> is called, it |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
454 |
* delegates to the <code>RowSet</code> object's <code>SyncProvider</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
455 |
* How the writer provided by that <code>SyncProvider</code> object is implemented |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
456 |
* determines what level (grade) of checking for conflicts will be done. After all |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
457 |
* checking for conflicts is completed and one or more conflicts has been found, the method |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
458 |
* <code>acceptChanges</code> throws a <code>SyncProviderException</code> object. The |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
459 |
* application can catch the exception and use it to obtain a <code>SyncResolver</code> object. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
460 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
461 |
* The application can then use <code>SyncResolver</code> methods to get information |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
462 |
* about each conflict and decide what to do. If the application logic or the user |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
463 |
* decides that a value in the <code>RowSet</code> object should be the one to |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
464 |
* persist, the application or user can overwrite the data source value with it. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
465 |
* <P> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
466 |
* The comment for the <code>SyncResolver</code> interface has more detail. |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
467 |
* |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
468 |
* <h3><a id="relspec">5.0 Related Specifications</a></h3> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
469 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
470 |
* <li><a href="http://docs.oracle.com/javase/jndi/tutorial/index.html">JNDI</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
471 |
* <li><a href="{@docRoot}/java.logging/java/util/logging/package-summary.html">Java Logging |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
472 |
* APIs</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
473 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
474 |
* <h3><a id="reldocs">6.0 Related Documentation</a></h3> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
475 |
* <ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
476 |
* <li><a href="http://docs.oracle.com/javase/tutorial/jdbc/">DataSource for JDBC |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
477 |
* Connections</a> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
478 |
* </ul> |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
479 |
*/ |
db65921e9a9b
8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents:
47216
diff
changeset
|
480 |
package javax.sql.rowset.spi; |