A DB2 Universal JDBC illesztőprogram nem támogatja a 4-es típusú |csatlakoztatást DB2 for VM/VSE adatbázisokhoz. Az Alkalmazásfejlesztési |útmutató: Kliensalkalmazások programozása kézikönyv "Windows Java |környezet beállítása" és "DB2 Universal JDBC illesztőprogram |telepítése" című témakörei hibásan állítják, hogy a DB2 Universal |JDBC illesztőprogram támogatja a 4-es típusú csatlakozást DB2 for VM/VSE |adatbázisokhoz.
A DB2 UDB for z/OS(R) kiszolgálók elérésére a DB2 Universal JDBC Driver 4-es típusú kapcsolódás illesztőprogramot használó alkalmazások kihasználhatják a kapcsolatösszesítő és Sysplex terheléskiegyenlítés funkciókat.
Ezek a funkciók hasonlók a DB2 Connect kapcsolatösszesítő és Sysplex terheléskiegyenlítő funkcióihoz.
A DB2 Universal JDBC Driver kapcsolatösszesítő csökkentheti a DB2 UDB for z/OS(R) adatbázis-kiszolgálók által a nagyszámú ügyfélalkalmazások támogatásához igényelt erőforrásokat oly módon, hogy sok kapcsolatobjektum számára megengedi, hogy egyazon fizikai kapcsolatot használjon, amely csökkenti az adatbázis-kiszolgálóval létesített fizikai kapcsolatok teljes számát.
DB2 Universal JDBC Driver Sysplex terheléskiegyenlítés javíthatja egy adatmegosztó csoport rendelkezésre állását, mivel az illesztőprogram gyakori állapotinformációkat kap az adatmegosztó csoport tagjairól. Az illesztőprogram ezeket az információkat használja annak az adatmegosztó tagnak a meghatározására, amelyhez a következő tranzakciót irányítani kell. A Sysplex terheléskiegyenlítéssel a DB2 UDB for z/OS kiszolgáló és Workload Manager for z/OS (WLM) biztosítja, hogy a munka hatékony elosztására kerül sor az adatmegosztó csoport tagjai között, és hogy egy tag meghibásodása esetén a munka az adatmegosztó csoport egy másik tagjához kerül.
A DB2 Universal JDBC Driver szállítási objektumokat és egy globális szállítási objektumtárolót használ a kapcsolatösszesítő és a Sysplex terheléskiegyenlítés támogatására. Az adatbázis-kiszolgáló minden fizikai kapcsolatához létezik egy szállítási objektum. Ha engedélyezi a kapcsolatösszesítőt és a Sysplex terheléskiegyenlítőt, az adatbázis-kiszolgáló fizikai kapcsolatainak számát bármikor beállíthatja a szállítási objektumok maximális számának beállításával.
Az illesztőprogram szintjén a DB2 Universal JDBC Driver konfigurációs tulajdonságainak segítségével állítja be a szállítási objektumok számának korlátait.
A kapcsolat szintjén a DB2 Universal JDBC Driver kapcsolatösszesítő és Sysplex terheléskiegyenlítő engedélyezésére és letiltására, valamint a szállítási objektumok számának korlátozására a DataSource tulajdonságok segítségével kerül sor.
A globális szállítási objektumterület a következő módszerekkel figyelhető meg:
A következő konfigurációs tulajdonságok használatosak a kapcsolatösszesítőhöz és Sysplex terheléskiegyenlítőhöz
A db2.jcc.dumpPool adattípusa egész szám (int.). A db2.jcc.dumpPoolStatisticsOnSchedule és a db2.jcc.dumpPoolStatisticsOnScheduleFile konfigurációs tulajdonságokat be kell állítani a statisztikák írása előtt.
A db2.jcc.dumpPool tulajdonsággal a következő típusú statisztikák közül adható meg egy vagy több:
Egynél több típusú esemény nyomkövetéséhez adja össze a követni kívánt események típusainak értékét. Például tegyük fel, hogy a DUMP_GET_OBJECT és DUMP_CREATE_OBJECT eseményeket szeretné figyelni. Ezeknek az értékeknek a numerikus megfelelőjük a 2 és 16, így 18-at kell megadni a db2.jcc.dumpPool értékeként.
Az alapértelmezés 0, ami azt jelenti, hogy csak a globális szállítási tároló összegző eseményeinek kiírására kerül sor.
Az alapértelmezés -1, ami azt jelenti, hogy a globális szállítási tároló statisztikáinak kiírására nem kerül sor.
Ha a db2.jcc.dumpPoolStatisticsOnScheduleFile konfigurációs tulajdonság nincs megadva, a globális szállítási tároló statisztikáinak kiírására nem kerül sor.
A db2.jcc.maxTransportObjectIdleTime konfigurációs tulajdonság alapértéke 60. Ha a db2.jcc.maxTransportObjectIdleTime értékét 0-nál kisebb értékre állítja, a nem használt szállítási objektumok törlésére a tárolóból azonnal sor kerül. Ez a művelet nem javasolt, mivel jelentős teljesítménycsökkenést eredményezhet.
A db2.jcc.maxTransportObjectWaitTime konfigurációs tulajdonság alapértéke -1. A negatív értékek azt jelentik, hogy az alkalmazás örökké vár.
A db2.jcc.maxTransportObjects konfigurációs tulajdonság alapértéke -1, ami azt jelenti, hogy nincs korlátozás a globális szállítási objektumtárolóban lévő szállítási objektumok számára vonatkozóan.
A db2.jcc.minTransportObjects konfigurációs tulajdonság alapértéke 0. A nullánál nem nagyobb érték azt jelenti, hogy a globális szállítási objektumtároló üres is lehet.
A következő DB2 Universal JDBC Driver DataSource tulajdonságok használatosak a kapcsolatösszesítőhöz és Sysplex terheléskiegyenlítőhöz:
Az enableConnectionConcentrator tulajdonság adattípusa logikai érték (boolean). Az alapértelmezés false (hamis). Ha azonban az enableSysplexWLB beállítása true (igaz), az alapértelmezés is true.
Az enableSysplexWLB tulajdonság adattípusa logikai érték (boolean). Az alapértelmezés false (hamis). Ha azonban az enableSysplexWLB beállítása true (igaz), az enableConnectionConcentrator értéke is igaz lesz alapértelmezés szerint.
Ennek a tulajdonságnak az adattípusa egész szám (int.).
Ha a maxTransportObjects értékét nem érte el, és szállítási objektum nem érhető el a szállítási objektumtárolóban, a tároló egy új szállítási objektumot hoz létre. Ha elérte a maxTransportObjects értékét, az alkalmazás a db2.jcc.maxTransportObjectWaitTime konfigurációs tulajdonsággal megadott ideig vár. Az idő eltelte után, ha még mindig nincs elérhető szállítási objektum a tárolóban, a tároló egy SQLException kivételt ad.
A maxTransportObjects tulajdonság nem bírálja felül a db2.jcc.maxTransportObjects konfigurációs tulajdonságot. A maxTransportObjects tulajdonság nincs hatással más DataSource objektumok kapcsolataira. Ha a maxTransportObjects értéke nagyobb, mint a db2.jcc.maxTransportObjects értéke, a maxTransportObjects nem növeli a db2.jcc.maxTransportObjects értékét.
A maxTransportObjects tulajdonság alapértéke -1, ami azt jelenti, hogy a DataSource szállítási objektumainak számát csak az illesztőprogram db2.jcc.maxTransportObjects értéke korlátozza.
A következő eljárás példa a DB2 Universal JDBC Driver kapcsolatösszesítő és Sysplex terheléskiegyenlítő funkciók engedélyezésére a WebSphere(R) Application Server alkalmazással.
Kiszolgálói követelmények:
Ügyfélre vonatkozó követelmények:
A DB2 Universal JDBC Driver kapcsolatösszesítő és Sysplex terheléskiegyenlítő funkciók engedélyezése a WebSphere Application Server alkalmazáshoz:
java com.ibm.db2.jcc.DB2Jcc -versionA kimenetben keressen az alábbihoz hasonló sort:
[ibm][db2][jcc] Driver: IBM DB2 JDBC Universal Driver Architecture n nn értékének 2.7-nek vagy nagyobbnak kell lennie.
Egy DB2JccConfiguration.properties fájlban állítsa be a konfigurációs tulajdonságokat.
db2.jcc.minTransportObjects=0 db2.jcc.maxTransportObjects=1500 db2.jcc.maxTransportObjectWaitTime=-1 db2.jcc.dumpPool=0 db2.jcc.dumpPoolStatisticsOnScheduleFile= /home/WAS/logs/srv1/poolstats
A WebSphere Application Server adminisztrátori konzoljában állítsa be az alkalmazás által az adatbázis-kiszolgáló kapcsolódásához használt adatforrás következő tulajdonságait:
A DB2 Universal JDBC Driver kapcsolatösszesítő és Sysplex terheléskiegyenlítő funkciók megfigyeléséhez a globális szállítási objektumtárolót kell megfigyelni. A globális szállítási objektumterület a következő módszerekkel figyelhető meg:
A db2.jcc.dumpPool, db2.jcc.dumpPoolStatisticsOnSchedule és a db2.jcc.dumpPoolStatisticsOnScheduleFile konfigurációs tulajdonságok szabályozzák a globális szállítási objektumtároló nyomkövetését.
Például a konfigurációs tulajdonságok alábbi beállításainak következményeként a program minden 60 másodperc elteltével Sysplex hibaüzeneteket és a tároló hibaüzeneteit írja a /home/WAS/logs/srv1/poolstats nevű fájlba:
db2.jcc.dumpPool=DUMP_SYSPLEX_MSG|DUMP_POOL_ERROR db2.jcc.dumpPoolStatisticsOnSchedule=60 db2.jcc.dumpPoolStatisticsOnScheduleFile=/home/WAS/logs/srv1/poolstats
A tárolási statisztikafájl egy bejegyzése így néz ki:
idő Scheduled PoolStatistics npr:2575 nsr:2575 lwroc:439 hwroc:1764 coc:372 aooc:362 rmoc:362 nbr:2872 tbt:857520 tpo:10
A mezők jelentése a következő:
A globális szállítási objektumtároló statisztikáinak gyűjtésére alkalmazások készíthetők. Ezek az alkalmazások a DB2PoolMonitor osztályból készítenek objektumokat, és hívnak meg metódusokat a tároló információinak lekérésére.
Például a következő kód egy objektumot hoz létre a globális szállítási objektumtároló figyelésére:
import com.ibm.db2.jcc.DB2PoolMonitor; DB2PoolMonitor transportObjectPoolMonitor = DB2PoolMonitor.getPoolMonitor (DB2PoolMonitor.TRANSPORT_OBJECT);
A DB2PoolMonitor objektum létrehozása után a következő metódusok használatával figyelheti meg a globális szállítási objektumtárolót.
public int getMonitorVersion()
A DB2 Universal JDBC Driver mellett található DB2PoolMonitor osztály verzióját kéri le.
public int totalRequestsToPool()
A tároló létrehozása óta a DB2 Universal JDBC Driver által a tárolóhoz intézett kérések teljes számát kéri le.
public int successfullRequestsFromPool()
A tároló létrehozása óta a DB2 Universal JDBC Driver által a tárolóhoz intézett sikeres kérések számát kéri le. A sikeres kérés azt jelenti, hogy a tároló egy objektumot adott vissza.
public int numberOfRequestsBlocked()
A DB2 Universal JDBC Driver által a tárolóhoz intézett, és a tároló által a maximális kapacitás elérése miatt blokkolt kérések számát kéri le. Egy blokkolt kérés sikeres lehet, ha a db2.jcc.maxTransportObjectWaitTime konfigurációs érték túllépése és kivétel előfordulása előtt a tároló egy objektumot kap.
public long totalTimeBlocked()
A tároló által blokkolt kérések teljes idejét kéri le ezredmásodpercben. Ez az idő sokkal nagyobb lehet, mint az alkalmazás eltelt végrehajtási ideje, ha az alkalmazás több szálat használ.
public int lightWeightReusedObjectCount()
Az újrahasznosított, de a tárolóban nem talált objektumok számát kéri le. Ez akkor fordulhat elő, ha egy kapcsolatobjektum egy szállítási objektumot egy tranzakciós határnál enged el. Ha a kapcsolatobjektumnak később egy szállítási objektumra van szüksége, és az eredeti szállítási objektumot nem használta semmilyen más kapcsolatobjektum, a kapcsolatobjektum használhatja azt a szállítási objektumot.
public int heavyWeightReusedObjectCount()
A tárolóból újrahasznosított objektumok számát kéri le.
public int createdObjectCount()
A tároló létrehozása óta a DB2 Universal JDBC Driver által létrehozott objektumok számát kéri le.
public int agedOutObjectCount()
A db2.jcc.maxTransportObjectIdleTime konfigurációs tulajdonság által megadott tétlenségi időt túllépő, és a tárolóból törölt objektumok számát kéri le.
public int removedObjectCount()
A tároló létrehozása óta az onnan törölt objektumok számát kéri le.
public int totalPoolObjects()
A jelenleg a tárolóban található objektumok száma.
Az OleDbReportIsLongForLongTypes kulcsszót a következő adatbázis-kiszolgálók támogatják:
Az OLE DB ügyfél kurzor alrendszere és az OLE DB .NET Data Provider's CommandBuilder programja frissítési (update) és törlési (delete) utasításokat hoz létre az IBM DB2 OLE DB Provider által küldött oszlopadatok alapján. Ha a létrehozott utasításban szerepel LONG típus a WHERE tagmondatban, az utasítás végrehajtása meghiúsul, mivel a LONG típusok nem használhatók egyenlőség operátorral végzett keresések során. Az OleDbReportIsLongForLongTypes kulcsszónak 1-es értéket adva az IBM DB2 OLE DB Provider jelentést készít a DBCOLUMNFLAGS_ISLONG jelzővel rendelkező LONG típusokról (LONG VARCHAR, LONG VARCHAR FOR BIT DATA, LONG VARGRAPHIC és LONG VARGRAPHIC FOR BIT DATA). Ez kiküszöböli a hosszú oszlopok WHERE tagmondatban történő használatát.
A OleDbSQLColumnsSortByOrdinal kulcsszót a következő adatbázis-kiszolgálók támogatják:
A Microsoft OLE DB specifikáció esetében szükséges, hogy az IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) sorkészletet adjon meg a TABLE_CATALOG, a TABLE_SCHEMA, a TABLE_NAME és a COLUMN_NAME oszlop szerint rendezve. Az IBM DB2 OLE DB Provider megfelel a specifikációnak. Ugyanakkor a Microsoft ODBC Bridge Provider (MSDASQL) terméket használó alkalmazások kódolása jellemzően az ORDINAL_POSITION szerint rendezett sorkészletek beolvasását célozza. Az OleDbSQLColumnsSortByOrdinal kulcsszó értékét 1-re állítva a szolgáltató (provider) ORDINAL_POSITION szerint rendezett sorkészletet ad meg.
Az IBM DB2 OLE DB Provider új tulajdonságcsoporttal bővült: DB2 Data Source. A DB2 Data Source tulajdonságkészlete: DBPROPSET_DB2DATASOURCE.
A tulajdonságkészlet GUID azonosítója: {0x8a80412a,0x7d94,0x4fec,{0x87,0x3e,0x6c,0xd1,0xcd,0x42,0x0d,0xcd}}
A DBPROPSET_DB2DATASOURCE három tulajdonsággal rendelkezik:
#define DB2PROP_REPORTISLONGFORLONGTYPES 4 Tulajdonságcsoport: DB2 Data Source Tulajdonságkészlet: DB2PROPSET_DATASOURCE Típus: VT_BOOL Jellemző R/W: R/W Leírás: IsLong jelentése Long (hosszú) típusok esetén
Az OLE DB ügyfél kurzor alrendszere és az OLE DB .NET Data Provider's CommandBuilder programja frissítési (update) és törlési (delete) utasításokat hoz létre az IBM DB2 OLE DB Provider által küldött oszlopadatok alapján. Ha a létrehozott utasításban szerepel LONG típus a WHERE tagmondatban, az utasítás végrehajtása meghiúsul, mivel a LONG típusok nem használhatók egyenlőség operátorral végzett keresések során.
Értékek | Jelentés |
---|---|
VARIANT_TRUE | Ezen érték esetén az IBM DB2 OLE DB Provider jelentést készít a DBCOLUMNFLAGS_ISLONG jelzővel rendelkező LONG típusokról (LONG VARCHAR, LONG VARCHAR FOR BIT DATA, LONG VARGRAPHIC, and LONG VARGRAPHIC FOR BIT DATA). Ez kiküszöböli a hosszú oszlopok WHERE tagmondatban történő használatát. |
VARIANT_FALSE | Nincs megadva DBCOLUMNFLAGS_ISLONG a LONG VARCHAR, a LONG VARCHAR FOR BIT DATA, a LONG VARGRAPHIC és a LONG VARGRAPHIC FOR BIT DATA esetében. Ez az alapérték. |
#define DB2PROP_RETURNCHARASWCHAR 2 Tulajdonságcsoport: DB2 Data Source Tulajdonságkészlet: DB2PROPSET_DATASOURCE Típus: VT_BOOL Jellemző R/W: R/W Leírás: Char visszaadása WChar típusként
Értékek | Jelentés |
---|---|
VARIANT_TRUE | Az OLE DB leírást ad a CHAR, VARCHAR, LONG VARCHAR, illetve CLOB oszlopokról: DBTYPE_WSTR. Az ISequentialStream adatfolyamban szereplő adatok kódlapja UCS-2. Ez az alapérték. |
VARIANT_FALSE | Az OLE DB leírást ad a CHAR, VARCHAR, LONG VARCHAR, illetve CLOB oszlopokról: DBTYPE_STR. Az ISequentialStream adatfolyamban szereplő adatok kódlapja az ügyfél helyi kódlapja. |
#define DB2PROP_SORTBYORDINAL 3 Tulajdonságcsoport: DB2 Data Source Tulajdonságkészlet: DB2PROPSET_DATASOURCE Típus: VT_BOOL Jellemző R/W: R/W Leírás: Rendezés Ordinal szerint
A Microsoft OLE DB specifikáció esetében szükséges, hogy az IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) sorkészletet adjon meg a TABLE_CATALOG, a TABLE_SCHEMA, a TABLE_NAME és a COLUMN_NAME oszlop szerint rendezve. Az IBM DB2 OLE DB Provider megfelel a specifikációnak. Ugyanakkor a Microsoft ODBC Bridge Provider (MSDASQL) terméket használó alkalmazások kódolása jellemzően az ORDINAL_POSITION szerint rendezett sorkészletek beolvasását célozza.
Értékek | Jelentés |
---|---|
VARIANT_TRUE | A szolgáltató ORDINAL_POSITION szerint rendezett sorkészletet ad meg. |
VARIANT_FALSE | A szolgáltató TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME szerint rendezett sorkészletet ad meg. Ez az alapérték. |
Az "Installing the DB2 Universal JDBC Driver" ("A DB2 Universal JDBC Driver telepítése") témában a DB2Binder szintaxisdiagram hibásan adja meg a DB2 Universal JDBC Driver URL szintaxisát. A DB2Binder helyes URL szintaxisa a következő diagramon szerepel:
A DB2 Universal Database (UDB) for Linux, UNIX, és Windows automatikus ügyfélátirányítási szolgáltatás lehetővé teszi az ügyfélalkalmazások számára, hogy a kiszolgálóval folytatott kommunikáció megszakadása esetén helyreállítsák a kapcsolatot, így minimális fennakadással képesek legyenek folytatni működésüket.
Ha egy kiszolgáló meghibásodik, a hozzá kapcsolódó ügyfelek mindegyike kommunikációs hibajelzést kap, megszakad a kapcsolat, és az alkalmazáshiba áll elő. Ha fontos az üzembiztonság, akkor redundáns rendszerrel vagy feladatátvételi támogatással kell rendelkezni. (A feladatátvétel a kiszolgálónak az a képessége, hogy egy másik kiszolgáló meghibásodása esetén át tudja venni annak műveleteit.) Mindkét esetben a DB2 Universal JDBC vezérlőjű ügyfél megkísérel ismét kapcsolatot létesíteni az új kiszolgálóval vagy az eredeti kiszolgálóval, amely esetleg egy feladatátvételi csomóponton fut. Amikor a kapcsolat újból létrejön, az alkalmazás SQL Exception kivételt kap, amely közli, hogy meghiúsult a tranzakció; az alkalmazás működése a következő tranzakcióval folytatódhat.
Miután az adatbázis-adminisztrátor megadta a másodlagos kiszolgáló helyét egy adott adatbázison a kiszolgálópéldányon, kapcsolódáskor a rendszer visszaküldi az elsődleges és a másodlagos kiszolgáló helyét az ügyfélnek. A DB2 Universal JDBC vezérlő létrehozza a DB2ClientRerouteServerList hivatkozható objektum egy példányát és ideiglenes memóriájában tárolja a példányt. Ha megszakas a kommunikáció, a DB2 Universal JDBC vezérlő megkísérli újra létrehozni a kapcsolatot a kiszolgálóról kapott kiszolgálói adatok alapján.
A clientRerouteServerListJNDIName DataSource tulajdonság további ügyfélátirányítási támogatást nyújt az ügyfélnél; a clientRerouteServerListJNDIName két funkciót lát el:
Másodlagos kiszolgálói adatok érdekében a clientRerouteServerListJNDIName azonosít egy JNDI tárban található DB2ClientRerouteServerList példányra mutató JNDI hivatkozást. Az elsődleges kiszolgálóval történő sikeres kapcsolódást követően a clientRerouteServerListJNDIName által küldött másodlagos kiszolgálói információkat felülírják a kiszolgálóról kapott adatok. A DB2 Universal JDBC vezérlő feladatátvételi eseményt követően megkísérli szétküldeni a frissített információkat a JNDI tárba, ha a clientRerouteServerListJNDIName tulajdonság meg van adva. Ha a clientRerouteServerListJNDIName meg van adva, a kapcsolódáshoz a program a DB2ClientRerouteServerList kiszolgálói információit használja. Ha az elsődleges kiszolgáló nincs megadva, a rendszer az adatforráson megadott serverName (kiszolgálónév) információt használja.
A DB2ClientRerouteServerList egy sorosítható Java bean négy tulajdonsággal:
A program ezen tulajdonságok elérésének getter (beolvasási) és setter (beállítási) módjait nyújtja. A DB2ClientRerouteServerList osztály megadása a következő módon történik:
package com.ibm.db2.jcc; public class DB2ClientRerouteServerList implements java.io.Serializable, javax.naming.Referenceable { public String[] alternateServerName; public synchronized void setAlternateServerName(String[] alternateServer); public String[] getAlternateServerName(); public int[] alternatePortNumber; public synchronized void setAlternatePortNumber(int[] alternatePortNumberList); public int[] getAlternatePortNumber(); public synchronized void setPrimaryServerName (String primaryServerName); public String getPrimaryServerName (); public synchronized void setPrimaryPortNumber (int primaryPortNumber) public int getPrimaryPortNumber (); }
Egy újonnan létrehozott feladatátvételi kapcsolat konfigurálása az eredeti adatforrás tulajdonságai alapján történik, kivéve a kiszolgáló nevét és a portszámot. Ezen felül az eredeti kapcsolódás során módosított DB2 UDB speciális regisztereket ismét létrehozza a rendszer a feladatátvételi kapcsolódás során, a DB2 Universal Driver JDBC vezérlő segítségével.
Ha kommunikációs hiba történik, a DB2 Universal JDBC vezérlő először az elsődleges kiszolgálóval kísérli meg helyreállítani a kapcsolatot. Amennyiben ez nem sikerül, a vezérlő megkísérel csatlakozni a másodlagos helyszínhez (feladatátvétel). A kapcsolat ismételt létrehozását követően a vezérlő java.sql.SQLException kivételt küld az alkalmazásnak SQLCODE -4498 kóddal azt jelezve, hogy a kapcsolatot automatikusan létrehozta a másodlagos kiszolgálóval. Ezután az alkalmazás újra megkísérelheti a tranzakciót.
Ahhoz, hogy a tároló beállításai lehetővé egyék a DB2ClientRerouteServerList példány állandóvá tételét, hajtsa végre a következő lépéseket:
// A névadási műveletek induló környezetének létrehozása InitialContext registry = new InitialContext(); // Hozzon létre DB2ClientRerouteServerList objektumot DB2ClientRerouteServerList address=new DB2ClientRerouteServerList(); // Adja meg az elsődleges kiszolgálóhoz tartozó portszámot és kiszolgálónevet address.setPrimaryPortNumber(50000); address.setPrimaryServerName("mvs1.sj.ibm.com"); // A másodlagos kiszolgáló nevének és a portszámnak a beállítása int[] port = {50002}; String[] server = {"mvs3.sj.ibm.com"}; address.setAlternatePortNumber(port); address.setAlternateServerName(server); registry.rebind("serverList", address);
datasource.setClientRerouteServerListJNDIName("serverList");
A DB2 Universal JDBC vezérlőkonfigurációs tulajdonságai lehetővé teszik a teljes vezérlőre vonatkozó tulajdonságértékek megadását. Ezek a beállítások több alkalmazásra és adatforráspéldányra érvényesek. A beállítások módosíthatók az alkalmazás forráskódjának vagy az adatforrás jellemzőinek megváltoztatása nélkül.
Minden egyes DB2 Universal JDBC vezérlőkonfigurációs tulajdonság beállítása a következő formátumú:
tulajdonság=érték
Ha a konfigurációs tulajdonság így kezdődik: db2.jcc.override, akkor a tulajdonság minden kapcsolatra érvényes, és felülbírál minden olyan Kapcsolat és Adatforrás tulajdonságot, amelynek vele azonos a neve. Ha a konfigurációs tulajdonság így kezdődik: db2.jcc or db2.jcc.default, a tulajdonság értéke az alapérték. A Kapcsolat vagy Adatforrás tulajdonságok felülbírálják ezt az alapértéket.
A konfigurációs tulajdonságok beállítása:
Önálló Java alkalmazások esetében a konfigurációs tulajdonságokat megadhatja Java rendszertulajdonságokként az egyes konfigurációs tulajdonságok esetében a -Dproperty=érték megadásával, a java parancs végrehajtásakor.
Önálló Java alkalmazások esetében a konfigurációs tulajdonságok megadását a -Ddb2.jcc.propertiesFile=path beállítás meghatározásával végezheti el, a java parancs végrehajtásakor.
A DB2JccConfiguration.properties erőforrás lehet akár egy önálló fájl, vagy benne lehet egy JAR fájlban.
Ha a DB2JccConfiguration.properties egy önálló fájl, a DB2JccConfiguration.properties elérési útjának benne kell lennie a CLASSPATH összefűzésben.
Ha a DB2JccConfiguration.properties egy JAR fájlban van, a JAR fájlnak kell szerepelnie a CLASSPATH összefűzésben.
Megadhatja a következő DB2 Universal JDBC vezérlőkonfigurációs tulajdonságokat. Minden tulajdonság választható (azaz nem kötelező).
Adjon meg egy teljesen meghatározott fájlnevet a db2.jcc.override.traceFile tulajdonság értékének.
A db2.jcc.override.traceFile tulajdonság felülbírálja a Kapcsolat vagy Adatforrás objektum traceFile tulajdonságát.
Ha például az alábbi értéket adja a db2.jcc.override.traceFile tulajdonságnak, akkor ezzel engedélyezi a DB2 Universal JDBC vezérlő Java kód nyomkövetését a /SYSTEM/tmp/jdbctrace nevű fájlba:
db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace
A nyomkövetési beállításokat az IBM szoftvertámogatás útmutatása alapján végezze.
A The db2secFreeToken függvény (A jelsor által tartott szabad memória) már nem része a db2secGssapiServerAuthFunctions_1 felhasználói hitelesítési bővítő API-nak.
A DB2 Universal Database (UDB) telepítésének integritása sérülhet, ha a biztonsági bővítések telepítése nem megfelelő kódolás, áttekintés és/vagy tesztelés mellett zajlik. A DB2 UDB esetében elővigyázatossági lépések történtek a legtöbb szokványos hibatípus elkerülése érdekében, de ez nem szavatolhatja a teljeskörű integritást a felhasználó által írt biztonsági bővítők telepítése esetén.
Ha a saját, testre szabott biztonsági bővítőjét használja, maximum 255 karakterből álló felhasználói azonosítót használhat a CLP-n vagy egy dinamikus SQL utasításon keresztül kiadott kapcsolódási utasításban.
A db2secGetGroupsForUser, db2secValidatePassword és db2secGetAuthIDs API-k esetén a dbname bementi paraméter null is lehet, és a hozzá tartozó dbnamelen hossz bemeneti paraméter nulla értékre lesz állítva.
A .so a jelenlegi verzióban már elfogadott fájlnév-kiterjesztés a felhasználó által írt biztonsági bővítők könyvtáraiban, minden Linux és UNIX platformon.
AIX rendszeren a biztonsági bővítők könyvtárainak kiterjesztése .a vagy .so lehet. Ha a bővítőkönyvtár mindkét változata létezik, az .a kiterjesztésű változat kerül felhasználásra.
PA-RISC platformon futó HP-UX rendszeren a biztonsági bővítők könyvtárainak kiterjesztése .sl vagy .so lehet. Ha a bővítőkönyvtár mindkét változata létezik, az .sl kiterjesztésű változat kerül felhasználásra.
Minden más Linux és UNIX platformon a .so az egyetlen támogatott fájlnév-kiterjesztés a biztonsági bővítők könyvtárai esetében.
AIX rendszeren a biztonsági bővítők könyvtárai .a vagy .so fájlnév-kiterjesztéssel rendelkezhetnek. A bővítőkönyvtár betöltésére használt eljárás az adott kiterjesztéstől függ:
Például egy 32 bites archív stílus bővítőkönyvtár létrehozása:
xlc_r -qmkshrobj -o shr.o bővítő.c -bE:bővítő.exp ar rv bővítő.a shr.o
xlc_r -qmkshrobj -o bővítő.so bővítő.c -bE:bővítő.exp
Az AIX platformtól különböző bármilyen rendszer a biztonsági bővítők könyvtárait mindig dinamikusan betölthető megosztott objektumnak feltételezi.
| | |A DB2 UDB 8.2 for Linux, UNIX, Windows kiadásával bedolgozók |(betölthető könyvtárak) formájában létrehozhatja a saját hitelesítési |mechanizmusait. A DB2 UDB alrendszer betölti és eléri ezeket a |bedolgozókat a felhasználói hitelesítés elvégzéséhez. A Java nyelven írt |ügyfél alkalmazások támogatásához a DB2 Universal JDBC illesztőprogram |biztonsági bedolgozó támogatást nyújt a 4-es javítócsomaggal ellátott DB2 |UDB 8.2-es változatához.
|A bedolgozók hitelesítését a DB2 Universal JDBC illesztőprogrammal |végző Java alkalmazásoknál a saját bedolgozók megvalósításához a |felhasználóknak ki kell terjeszteniük a com.ibm.db2.jcc.DB2JCCPlugin |absztrakt osztályt, valamint be kell állítaniuk a következő |tulajdonságokat:
|Példa:
|java.util.Properties properties = new java.util.Properties(); | properties.put("user", "db2admin"); | properties.put("password", "admindb2"); | properties.put("pluginName", "gssapi_simple"); | properties.put("securityMechanism", | new String(""+com.ibm.db2.jcc.DB2BaseDataSource.PLUGIN_SECURITY+"")); | properties.put("plugin", new JCCSimpleGSSPlugin()); | Connection con = java.sql.DriverManager.getConnection(url, properties);
A GSS-API hitelesítésre vonatkozó korlátozás egyetlen jelsor továbbítását teszi lehetővé az ügyféltől a kiszolgálóra, és egy jelsort a kiszolgálóról az ügyfélre. Ezeket a jelsorokat a rendszer a gss_init_sec_context() szövegéből olvassa be az ügyfélen, illetve a gss_accept_sec_context() szövegéből a kiszolgálón. A további adatfolyamok küldésére kísérletet tevő GSS-API bővítők váratlan biztonsági bővítő hibát okoznak, mely meghiúsítja a kapcsolódást.
Az üzenetek titkosítása és az aláírás nem érhető el a GSS-API biztonsági bővítőkben.
Minden alkalmazásleállás (szabályos vagy rendellenes) közvetve visszagörgeti az összes aktív vagy függőben munkaegységet, az operációs rendszertől függetlenül.
A 8.2-es verziójú DB2 Universal Database (UDB) dokumentációjának Újdonságok részében, a DB2 Universal JDBC vezérlő továbbfejlesztései szakasz Elosztott tranzakciók támogatásának adatai fejezetében téves információk szerepelnek. A szakasz utolsó mondata hibás. A helyes információ:
A 8.2-es verzióban a DB2 UDB támogatja az elosztott tranzakciókezelést, mely megfelel az XA specifikációknak. Ez a támogatás teljesíti a Java 2 Platform Enterprise Edition (J2EE), a Java Transaction Service (JTS) és a Java Transaction API (JTA) specifikációkban foglaltakat.
[ Oldal eleje |Előző oldal | Következő oldal | Tartalom ]