V.3. Configuration de la
réplication
Dans la théorie, nous avons signifié l'importance
de la réplication. De ce fait, nous allons ici configurer la
réplication par la configuration d'un serveur de publication et d'un
autre d'abonnement.
La base de données étant déjà mise en
place, il est question de spécifier le type de réplication
à configurer. Pour notre cas, nous avons choisi d'appliquer une
réplication symétrique synchrone. Le choix est porté sur
ce type de réplication vu l'importance du service qui doit être
rendu en vue d'assumer le suivi du casier judiciaire en continu. Le fait est
que les données pour chaque individu devront être mises à
jour dans différents sites une fois celles-ci publiées.
V.3.1. Publication
Pour se faire, nous avons, parmi les quatre types de publication
présents dans SQL Serveur 2008 R2, choisi le mode de publication de
fusion pour lequel le serveur de publication et les Abonnés peuvent
mettre à jour les données publiées de manière
indépendante, une fois que les Abonnées ont reçu le
cliché instantané initial des données à publier.
Figure 33: Assistant d'une nouvelle publication
Figure 34: Finalisation de la publication
V.3.2. Abonnement
Nous allons créer un nouvel abonnement après avoir
créé une publication. Cet abonnement se fait en mode pull ;
celui-ci permet aux esclaves d'être actifs en demandant chaque fois au
maitre s'il y a des mises à jour disponibles. Ci-dessous, le choix de la
publication à répliquer et le mode de réplication est en
continu.
Nous voyons sur la figure suivante, un récapitulatif du
processus de la création de notre abonnement.
Figure 35: Finalisation de l'abonnement
V.4. Extrait de code
source
V.4.1. Interface Metier
packagemetier;
importgui.People;
importjava.util.List;
/**
*
* @author Jusciamua
*/
public interface AllActivities
{
public voidaddPeople(People pp);
public void identPeople();
public void compareGararits();
public List<People>listPeople();
public List<People>peopleMC(String mc);
public List<Adresses>listeProvince();
public List<Adresses>provVille(String mc);
public List<Adresses>listeVille();
public List<Adresses>villeRech(String mc);
public List<Adresses>listeCommune();
public List<Adresses>listeQuartier();
public List<Adresses>listeAvenue();
}
V.4.2. Class Activité
Implémentant l'interface métier
packagemetier;
importgui.People;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importjavax.swing.JOptionPane;
importstaticmetier.ConnexionServeur.cnx;
/**
*
* @author Jusciamua
*/
public class AllActivitiesImplimplementsAllActivities
{
@Override
public void addPeople(People pp) {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
@Override
public List<People>listPeople() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
@Override
public List<People>peopleMC(String mc) {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
@Override
public List<Adresses>listeProvince()
{
List<Adresses> province=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
province")) {
ResultSet res=ps.executeQuery();
while(res.next()){
Adressesprov=new Adresses();
prov.setProv(res.getString(2));
province.add(prov);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
return province;
}
@Override
public List<Adresses>villeRech(String mc)
{
List<Adresses>ville=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
ville where id_prov like ?"))
{
ps.setString(1, "%"+mc+"%");
ResultSet res=ps.executeQuery();
while(res.next())
{
Adressesvil=new Adresses();
vil.setVille(res.getString(2));
ville.add(vil);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
return ville;
}
@Override
public List<Adresses>listeCommune()
{
List<Adresses> commune=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
commune")) {
ResultSet res=ps.executeQuery();
while(res.next()){
Adresses com=new Adresses();
com.setComm(res.getString(2));
commune.add(com);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
return commune;
}
@Override
public List<Adresses>listeQuartier() {
List<Adresses> quartier=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
quartier"))
{
ResultSet res=ps.executeQuery();
while(res.next())
{
Adresses quart=new Adresses();
quart.setQuart(res.getString(2));
quartier.add(quart);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
return quartier;
}
@Override
public List<Adresses>provVille(String mc)
{
List<Adresses>ville=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
ville where id_prov like ?"))
{
ps.setString(1, "%"+mc+"%");
ResultSet res=ps.executeQuery();
while(res.next())
{
Adressesvil=new Adresses();
vil.setVille(res.getString(2));
ville.add(vil);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
returnville;
}
@Override
public List<Adresses>listeVille()
{
List<Adresses>ville=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
Ville")) {
ResultSet res=ps.executeQuery();
while(res.next()){
Adresses vil=new Adresses();
vil.setVille(res.getString(2));
ville.add(vil);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
returnville;
}
@Override
public List<Adresses>listeAvenue()
{
List<Adresses> avenue=new ArrayList<>();
//diamond inference
try
{
try (PreparedStatementps = cnx.prepareStatement("select * from
avenue")) {
ResultSet res=ps.executeQuery();
while(res.next()){
Adressesav=new Adresses();
av.setAven(res.getString(2));
avenue.add(av);
}
ps.close();
}
}catch(SQLException e){JOptionPane.showMessageDialog(null,
e.getMessage());}
return avenue;
}
@Override
public void identPeople() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
@Override
public void compareGararits() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
}
|