Workload Management |
Technikai megjegyzések a BeenThere példához |
Forráskód helye |
Kódolási megjegyzések áttekintése |
A BeenThere alkalmazás forráskódja a
z/OS felhasználók figyelmébe: A példák forráskódfája z/OS platformon nem áll rendelkezésre, mivel a példaalkalmazások összeépítése nem z/OS platformon történik.
A BeenThere alkalmazás bemutatja az IBM WebSphere Application Server Network Deployment Edition munkaterhelés-felügyelet képességeit. A BeenThere alkalmazás a BeenThere kiszolgáló kisalkalmazást és a BeenThere állapotnélküli munkamenet vállalati komponenst tartalmazza. A BeenThere kiszolgáló kisalkalmazás szemlélteti az alkalmazáskiszolgálót egy olyan fürtben, amelyhez egy HTTP kérés lett elküldve. A BeenThere vállalati komponens szemlélteti az alkalmazáskiszolgálót egy olyan fürtben, amelyhez egy vállalati komponens kérés lett elküldve. A BeenThere vállalati komponenst a BeenThere kiszolgáló kisalkalmazás hívja meg.
A BeenThere kiszolgáló kisalkalmazás a következő információkat jeleníti meg:
Ezen felül a BeenThere kiszolgáló kisalkalmazás a következő műveleteket tudja végrehajtani:
A Webtároló és EJB tároló munkaterhelés-felügyelet bemutatására használt példakörnyezet a következő ábrában látható:
1. ábra A példakörnyezet
Ebben a környezetben lévő gépek tartalmaznak:
A konfiguráció két kiszolgálófürtöt tartalmaz, a MyWebCluster és a MyEJBCluster fürtöket. A kiszolgálófürt alkalmazáskiszolgálók egy csoportjából áll. Ha a kiszolgálók egyik tagja meghibásodik, akkor a kérések a fürt más tagjai felé lesznek továbbítva. A példa minden egyes fürtje két fürttagból áll. A MyWebCluster fürt a WebServer1 és a WebServer2 fürttagokból áll, a MyEJBCluster pedig az EJBServer1 és az EJBServer2 fürttagokból.
Ez a beállított környezet egy példa, ami csak a BeenThere alkalmazás futtatásának bemutatására szolgál. Éles környezetben óvatosan kell tervezni az erőforráskapacitást annak meghatározására, hogy egy bizonyos számú géphez a várható ügyfélkérés-terhelés alapján mennyi alkalmazáskiszolgáló tag legyen létrehozva.
A WebSphere Application Server Network Deployment Edition biztosítja a HTTP kérések és EJB kérések munkaterhelés-felügyelet (WLM) kezelését.
A HTTP kérések munkaterhelés-felügyeletét a webkiszolgáló bedolgozó kezeli.
Figyelje az 1. ábra konfigurációját. A web gép egy IBM HTTP Server-t futtat, ami elküldi a HTTP kéréseket az összes WebServer1 és WebServer2 alkalmazáskiszolgálónak, amelyek magukba foglalják a MyWebCluster fürt tagjait és a BeenThere kiszolgáló kisalkalmazást futtatják. Értelemszerűen ezek az alkalmazáskiszolgálók az app1 és app2 gépeken vannak beállítva. Továbbá az IBM HTTP Server bedolgozó úgy van beállítva, hogy a WebServer1 WLM tömege 2, a WebServer2 WLM tömege pedig 3. A tömegekre gondoljon úgy, mint számlálókra, amelyek a saját beállított értékeikről indulnak, és minden egyes kiszolgált kérés után az értékük 1-gyel csökken. A kérések egy körbeforgó folyamat használatával kerülnek elküldésre bármely alkalmazáskiszolgáló felé, aminek a tömegszámláló értéke pillanatnyilag nagyobb, mint 0. Ha az érték 0, akkor az alkalmazáskiszolgáló kimarad. Miután az összes tömegszámláló 0-ra csökkent, az összes alkalmazáskiszolgáló tömegszámlálója visszaáll a saját beállított értékére, és a küldési folyamat újból elindul.
Az EJB kérések munkaterhelés-felügyeletét a WLM vezérlő belsőleg kezeli a WebSphere Application Server alkalmazásban.
Figyelje az 1. ábra konfigurációját. A megadott MyEJBCluster fürt az EJBServer1 és az EJBServer2 alkalmazáskiszolgáló tagokból áll, amelyek a BeenThere állapotnélküli munkamenet vállalati komponens futtatásáért felelnek. A BeenThere kiszolgáló kisalkalmazás meghívja a vállalati komponenst, hogy végrehajtási információkat szerezzen be arról az alkalmazáskiszolgálóról, amelyiken a vállalati komponens fut. Továbbá ezeknek a kiszolgálóknak a beállított tömegértékei értelemszerűen 1 és 3.
z/OS platformokon a tömegértékek a HTTP kérések egyensúlyban tartására használatosak, de nem használhatók az Internet Inter-ORB Protocol (IIOP) kérések egyensúlyozására.
A BeenThere alkalmazás a WebSphere Application Server alkalmazás programozási felületeit használja. Ezekkel a felületekkel az alkalmazások hozzáférhetnek futási és környezeti konfigurációs információkhoz:
Kiszolgáló oldali felületeket biztosít az alkalmazáskiszolgáló attribútuminformációk lekérdezéséhez, valamint a képességet szabványos JMX MBean management funkciók végrehajtásához.
Ügyfél oldali felületeket biztosít egy távoli AdminService objektumhoz. Az AdminClient osztály egy proxy-t biztosít a távoli AdminService objektumhoz a Java Management Extensions (JMX) csatlakozók egyikén keresztül.
Felületeket biztosít a konfigurációs adatok lekérdezéséhez vagy módosításához helyileg vagy távolról, valamint alkalmazáskiszolgáló konfiguráció dokumentumainak helyét és tartalmát kezeli.
Az alkalmazások erejének és rugalmasságának bemutatására amikor a WebSphere Application Server adminisztrátori felületeit használják, a BeenThere alkalmazás ezen felületek mindegyikét az alábbi módon alkalmazza:
Az AdminService felületet mind a BeenThere kiszolgáló kisalkalmazás, mind a vállalati komponens a csomópontnév, alkalmazáskiszolgáló-név és annak az alkalmazáskiszolgálónak a folyamatazonosítójának a lekérdezésére használja, amelyiken fut. Az alábbi kódszegmens szemlélteti a kiszolgáló attribútuminformációinak megszerzését:
// A WebSphere AdminService megszerzése. AdminService adminService = AdminServiceFactory.getAdminService(); // A WebSphere Admin Local Server MBean egyed megszerzése. ObjectName localServer = adminService.getLocalServer(); // A csomópontnév megszerzése. nodeName = (String) adminService.getAttribute(localServer, "nodeName"); // Az Application Server nevének megszerzése. serverName = (String) adminService.getAttribute(localServer, "name"); // Az Application Server folyamatazonosítójának megszerzése. serverPid = (String) adminService.getAttribute(localServer, "pid");
Az AdminClient felület telepítéskezelő folyamathoz való kapcsolódására használatos annak a fürtnek az összes alkalmazáskiszolgáló-tag fürttagja tömegértékének lekérdezésére, amelyik a BeenThere vállalati komponenst futtatja. Az alábbi kódszegmens szemlélteti az AdminClient felület egy egyedének a megszerzését:
// A WebSphere AdminService megszerzése. AdminService adminService = AdminServiceFactory.getAdminService(); // Az AdminClient egyed megszerzése a telepítéskezelőnek. adminClient = adminService.getDeploymentManagerAdminClient();
A ConfigService felület a WebSphere Application Server cell.xml konfigurációs dokumentumának olvasására használatos, annak meghatározása céljából, hogy a BeenThere alkalmazás egy WebSphere Application Server Base Edition vagy egy Network Deployment Edition környezetben fut. Az alábbi kódszegmens szemlélteti egy olyan környezet meghatározásának módját, amiben egy alkalmazás fut:
// Hozzon létre egy új WebSphere Management Session-t. Session session = new Session(); // Szerezze meg a WebSphere ConfigService egyedet ezt a kiszolgáló // kisalkalmazást végrehajtó alkalmazáskiszolgálónak. ConfigService configService = ConfigServiceFactory.getConfigService(); if (configService != null) { // Olvassa be a cell.xml dokumentumot. ObjectName cellObj = ConfigServiceHelper.createObjectName(null, "Cell"); ObjectName[] cellObjs = configService.queryConfigObjects(session, null, cellObj, null); if (cellObjs.length != 0) { cellObj = cellObjs[0]; String cellName = (String) configService.getAttribute(session, cellObj, "name"); String cellType = (String) configService.getAttribute(session, cellObj, "cellType"); if (cellType.equals("DISTRIBUTED")) { websphereND = true; } } // Szabadítsa fel a munkamenetet. configService.discard(session);Ha egy Network Deployment környezet fordult elő, akkor a Display komponens fürttag tömegek lehetőség engedélyezve van és megjelenik, mert ez a lehetőség csak az ilyen típusú környezetekben érvényes. Más esetben ez a lehetőség nem jelenik meg kiválasztható elemként.