Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

V tejto kapitole je na príkladoch vysvetlené, ako nadviazať nadviazaťjednoduchosť  spojenie medzi klientskou aplikáciou a aplikáciou na platforme D2000. Predpokladom tejto kapitoly je aktívna D2000 aplikácia (prinajmenšom kernel), ku ktorej sa môžeme pripojiť. Spôsoby pripojenia sú rozdelené do troch kategórií, pričom možnosti z jednotlivých kategórií možno ľubovoľne kombinovať.


Pripojenie je možné nadviazať dvomi základnými spôsobmi:

...

V obidvoch prípadoch je JConnector stále pripojený na ten istý D2Connector. Po prepnutí asociovaného kernel-a z „hot" na „SBS" alebo späť je klientská aplikácia notifikovaná o zmene, ale JAPI túto situáciu inak nerieši Pre jednoduchosť nebudeme o redundancii kernel-a v nasledujúcich príkladoch uvažovať..nerieši Nadviazanie spojenia medzi klientskou aplikáciou a D2000.

Kotva
_Toc490141238
_Toc490141238
Parametre pre spustenie D2Connector-a

D2Connector je proces systému D2000 a je distribuovaný ako konzolová aplikácia (d2connector.exe). Akceptuje štandardné parametre procesov D2000 pre spustenie z príkazového riadku, ktoré sú popísané v Online referenčnej príručke systému D2000. Okrem toho akceptuje nasledovné parametre príkazového riadku:

  • --CONNECTOR_LISTEN_PORT=<port> - nastaví číslo TCP portu, na ktorom D2Connector počúva na prichádzajúce spojenie od JAPI. Ak nie je uvedené inak, počúva na porte 3120. (Parameter je ignorovaný, ak sa použije v kombinácii s --DCC)
  • --DCC=<hostname:port> - prepne D2Connector z režimu počúvania do režimu aktívneho pripájania sa na uvedenú adresu (DNS alebo IP) a port. Pokým sa mu nepodarí nadviazať spojenie, pokúša sa o to každých 30 sekúnd. Po ukončení spojenia sa opäť začne pokúšať o nadviazanie spojenia.
  • --CONNECTOR_TLS_CERT=<path.crt> - zapne TLS zabezpečenie a nastaví cestu k súboru s certifikátom vo formáte .crt.
  • --CONNECTOR_TLS_PK=<path.pem> - zapne TLS zabezpečenie a nastaví cestu k súboru s privátnym kľúčom k certifikátu vo formáte .pem. Obidva TLS parametre je potrebné použiť spolu.

...

Ide o nezabezpečené spojenie, ktoré iniciuje JAPI.


D2Connector môžeme naštartovať bez parametrov a bude počúvať na pripojenie na porte 3120

Blok kódu
languagepowershell
themeEclipse
> d2connector.exe

alebo zmeniť počúvajúci port napríklad na 3121:

Blok kódu
languagepowershell
themeEclipse
> d2connector.exe --CONNECTOR_LISTEN_PORT=3121

Pripojenie sa s použitím JAPI v prípade, že sa D2Connector nachádza na počítači s menom srvapp01v a počúva na porte 3120. Inštancia JConnector-a bude na konci uložená v premennej connector.

Blok kódu
languagejava
themeEclipse
String CONNECTION_STRING = "srvapp01v:3120";

...



D2ConnectorEventsListener connectorEventListener = new D2ConnectorEventsListener()

...


{
    @Override
    public void onClose(CloseReason reason)

...


    {
       //implementation of connector close event handling ...

...


    }
};

...


Future<D2Connector> upcomingConnection = D2Japi.getInstance().createConnector(CONNECTION_STRING, connectorEventListener);

...


D2Connector connector = upcomingConnection.get();

Kotva
_Toc490141240
_Toc490141240
Vytvorenie Session

Pripojený JConnector umožňuje vytvoriť novú Session vždy rovnakým spôsobom bez ohľadu na to, akým spôsobom bolo spojenie s D2Connector-om nadviazané. Nasledujúci postup je preto univerzálny pre všetky kombinácie. V príklade je JConnector reprezentovaný premennou .connector.


Na pripojenie sa použije používateľský účet SystemD2000 s heslom SystemD2000, proces bude v systéme identifikovaný menom MyD2Session.DCC Kernel môže k názvu procesu pridať dodatočné znaky, aby zabezpečil unikátnosť identifikátora v systéme. a pripája sa z počítača nb1tbac1 Je to nepovinný údaj a kernel nedokáže overiť jeho správnosť, ale korektná aplikácia by túto informáciu mala poskytnúť..

Kotva
_Ref422414880
_Ref422414880
String USER = "SystemD2000";
String PASSWORD = "SystemD2000";
String SESSION_NAME = "MyD2Session";
String HOST_NAME = "nb1tbac1";
D2SessionEventsListener sessionEventListener = new D2SessionEventsListener()
{
@Override
public void onClose(CloseReason reason)
{
//implementation
}
@Override
public void onRedundancyStateChanged(RedundancyStateType redundancyState)
{
//implementation
}
@Override
public void onTerminateRequest()
{
//implementation
}
};
Future<D2Session> upcomingSession = connector.createSession(
new SessionParametersBuilder()
.userName(USER)
.password(PASSWORD)
.sessionName(SESSION_NAME)
.build(),
sessionEventListener);
D2Session session = upcomingSession.get();

...

Trieda RedundantConnectionManager zjednodušuje pripojenie a  udržiavanie aktívneho pripojenia k redundantnej skupine O redundantnej skupine hovoríme, keď D2000 aplikácia obsahuje aspoň 2 kernel-y, z ktorých je vždy práve jeden riadiaci (HOT) a ostatné sú záložné (SBS). Ak má riadiaci kernel poruchu, prevezme riadiacu funkciu automaticky jeden zo záložných.. Interným mechanizmom zabezpečí, že sa voči každému z kernel-ov vytvorí JConnector a v prípade straty spojenia sa pokúša o obnovu. Je možné ju využiť aj na pripojenie k jedinému kernel-u. Inštanciu je možné získať volaním
connectionManager = D2Japi.getInstance().createRedundantConnectionManager(...)


Kotva
1
1
1 Pre jednoduchosť nebudeme o redundancii kernel-a v nasledujúcich príkladoch uvažovať.