Revision 629
Added by berkley over 23 years ago
MetacatReplication.java | ||
---|---|---|
180 | 180 |
PreparedStatement pstmt; |
181 | 181 |
if(subaction.equals("add")) |
182 | 182 |
{ |
183 |
String replicate = ((String[])params.get("replicate"))[0]; |
|
183 | 184 |
String server = ((String[])params.get("server"))[0]; |
184 | 185 |
pstmt = conn.prepareStatement("insert into xml_replication (server, " + |
185 |
"last_checked) values ('" + server + "', to_date(" + |
|
186 |
"'01/01/00', 'MM/DD/YY'))"); |
|
186 |
"last_checked, replicate) values ('" + server + "', to_date(" +
|
|
187 |
"'01/01/00', 'MM/DD/YY'), '" + replicate + "')");
|
|
187 | 188 |
pstmt.execute(); |
188 |
out.println("server " + server + " added"); |
|
189 |
out.println("server " + server + " added");
|
|
189 | 190 |
} |
190 | 191 |
else if(subaction.equals("delete")) |
191 | 192 |
{ |
... | ... | |
199 | 200 |
{ |
200 | 201 |
response.setContentType("text/html"); |
201 | 202 |
out.println("<html><body><table border=\"1\">"); |
202 |
out.println("<tr><td><b>server</b></td><td><b>last_checked</b></td></tr>"); |
|
203 |
out.println("<tr><td><b>server</b></td><td><b>last_checked</b></td><td>"); |
|
204 |
out.println("<b>replicate</b></td></tr>"); |
|
203 | 205 |
pstmt = conn.prepareStatement("select * from xml_replication"); |
204 | 206 |
pstmt.execute(); |
205 | 207 |
ResultSet rs = pstmt.getResultSet(); |
... | ... | |
207 | 209 |
while(tablehasrows) |
208 | 210 |
{ |
209 | 211 |
out.println("<tr><td>" + rs.getString(2) + "</td><td>"); |
210 |
out.println(rs.getString(3) + "</td></tr>"); |
|
212 |
out.println(rs.getString(3) + "</td><td>"); |
|
213 |
out.println(rs.getString(4) + "</td></tr>"); |
|
211 | 214 |
tablehasrows = rs.next(); |
212 | 215 |
} |
213 | 216 |
out.println("</table></body></html>"); |
... | ... | |
231 | 234 |
{ |
232 | 235 |
//System.out.println("in handleforcereplicaterequest"); |
233 | 236 |
String server = ((String[])params.get("server"))[0]; |
237 |
if(!(replToServer(server))) |
|
238 |
{ //do not get the server's new document if we are not replicating from there |
|
239 |
return; |
|
240 |
} |
|
241 |
|
|
234 | 242 |
//the server that the request came from |
235 | 243 |
String docid = ((String[])params.get("docid"))[0]; |
236 | 244 |
//the docid of the document to get |
... | ... | |
734 | 742 |
//e.printStackTrace(System.out); |
735 | 743 |
} |
736 | 744 |
} |
745 |
|
|
746 |
/** |
|
747 |
* Returns true if the replicate field for server in xml_replication is 1. |
|
748 |
* Returns false otherwise |
|
749 |
*/ |
|
750 |
public static boolean replToServer(String server) |
|
751 |
{ |
|
752 |
try |
|
753 |
{ |
|
754 |
Connection conn = util.openDBConnection(); |
|
755 |
PreparedStatement pstmt = conn.prepareStatement("select replicate from " + |
|
756 |
"xml_replication where server like '" + |
|
757 |
server + "'"); |
|
758 |
pstmt.execute(); |
|
759 |
ResultSet rs = pstmt.getResultSet(); |
|
760 |
boolean tablehasrows = rs.next(); |
|
761 |
if(tablehasrows) |
|
762 |
{ |
|
763 |
int i = rs.getInt(1); |
|
764 |
if(i == 1) |
|
765 |
{ |
|
766 |
return true; |
|
767 |
} |
|
768 |
else |
|
769 |
{ |
|
770 |
return false; |
|
771 |
} |
|
772 |
} |
|
773 |
} |
|
774 |
catch(Exception e) |
|
775 |
{ |
|
776 |
System.out.println("error in replToServer: " + e.getMessage()); |
|
777 |
} |
|
778 |
return false; |
|
779 |
//the default if this server does not exist is to not replicate to it. |
|
780 |
} |
|
737 | 781 |
} |
Also available in: Unified diff
added support for one way replication