Vraag : Uitwisseling 2010 - CAS/HT/MBX met hoge beschikbaarheid

Hallo daar, heeft

I twee servers met Uitwisseling 2010 op Win 2k8 R2. Deze servers hebben gevormde CAS/HT/MBX en DAG. Mijn vraag is… Hoe ik een Hoge Beschikbaarheid van deze server kan maken, zodat kan ik slechts één adres voor server hebben 2, en als één ontbreekt, een andere zal veronderstellen. Ik ben NIET ongerust gemaakt over het Saldo van de Lading, zou ik enkel behoefte HA.

NLB een manier kunnen zijn, maar is kan het onmogelijk om NLB op server met DAG te vormen, en ik geen 3de partij NLB products.

Does iedereen me kan helpen?

Thanks

Antwoord : Uitwisseling 2010 - CAS/HT/MBX met hoge beschikbaarheid

Eerste ding dat ik beweegt uw uitvoerdersdienst buiten de lijn zou adviseren.  U moet werkelijk slechts creëren dat eens.  Afhankelijk van uw implementatie, kunt u tot het een klassenvariabele kunnen maken, of statisch die door alle instanties van deze klasse of een privé lid wordt gedeeld als elke klasse zijn eigen draadpool wenst.  Één van beide manier, zolang u niet de dienst sluit, zal u die draden kunnen opnieuw gebruiken in plaats van het oplopen van de overheadkosten van elke keer de aanvang van hen.  Als de veelvoudige vraag aan deze methode zal moeten gelijktijdig lopen, beweeg de verwezenlijking van de uitvoerdersdienst terug in de methode, maar buiten de lijn.

Het kijkt ook als u cre�ërt 10 draadpools, met 10 draden elk om elke orde te verwerken.  De code die ik wordt herwerkt om allen te verwerken voorzag orden van 10 draden heb vastgemaakt.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
openbare klasse ClearDownService {
    privé int.draden;
    privé executorService ExecutorService;

    openbare ClearDownService (int.draden) {
        als (draden < 1="">= 1. „);
        }
        this.threads = draden;
        this.executorService = Executors.newFixedThreadPool (this.threads);
    }

    // ik uw te veronderstellen herhalingscode wijzigde u wat Inzameling van voorwerpen OrderModel hebt
    // dat u gebruikt om iterator te krijgen.  Aangezien u JDK 1.5+ gebruikt, zijn veel meer
    leesbaar en te handhaven // om Generics te gebruiken in plaats van het gieten van de terugkeer van iterator.next ().
    // wijzigde ik ook uw herhalingscode om het ingebouwde foreachconcept te gebruiken.
    openbare nietige checkOrders (de orden van de Inzameling) {
        // initialiseert klink voor het totale aantal orden, in plaats van draden.
        // dit verzekert alle orden worden verwerkt alvorens deze methode voltooit
        definitieve CountDownLatch startLatch = nieuwe CountDownLatch (orders.size ());

        // aangezien u JDK 1.5+ gebruikt, gemakkelijker te lezen en te handhaven als u generics gebruikt
        // en ingebouwde foreach in plaats van iterator
        voor (definitief model OrderModel: orde) {
            executorService.submit (nieuwe Jaagbaar () {
                openbare in werking gestelde leegte () {
                    probeer {
                        Tijdschema nu = Calendar.getInstance (TimeZone.getTimeZone („Europa/Londen“));
                        als (isEligibleForClearDown (model, master.getCleardownFields () .getClearDownReqFrom (), nu)) {
                            als (model.getOrderFields () .hasParentOrderId ()) {
                                // voegt alle orden van het Kind aan eindresultaat toe
                                results.add (model);
                            } anders {
                                // voegt ouderorden aan de ouderlijst toe
                                parentOrders.add (model);
                            }
                        }
                    } tenslotte {
                        // dat dit zet binnen een definitief blok verzekert het achteloos genoemd wordt
                        // van om het even welke uitzonderingen die in het lichaam van de methode voorkomen
                        startLatch.countDown ();
                    }
                }
            });
        }
        probeer {
            startLatch.await (); // wacht op alle voorwerpen om verwerking te voltooien
        } vangst (InterruptedException e) {
            LOGGER.error („Onderbroken Uitzondering terwijl het wachten op de aftelprocedureklink om te beëindigen. “);
        }
    }
}
Andere oplossingen  
 
programming4us programming4us