Pro ovladač DB2 Universal JDBC není podporována připojitelnost typu 4 s databázemi DB2 |for VM/VSE. V tématech "Setting up the Windows Java environment" (Konfigurace prostředí Java v systému Windows) a "Installing the DB2 Universal JDBC Driver" (Instalace ovladače DB2 Universal JDBC) v příručce Development Guide: Programming Client Applications a v Informačním centru DB2 UDB je nesprávně uvedeno, že ovladač DB2 Universal JDBC podporuje připojitelnost typu 4 s databázemi DB2 for VM/VSE.
Aplikace Java, které používají ovladač Připojitelnost ovladače DB2 Universal JDBC Type 4 pro přístup k produktu DB2 UDB pro servery z/OS(R) mohou využívat výhod funkcí koncentrátoru připojení a vyvažování zátěže komplexu subsystémů.
Tyto funkce jsou podobné funkcím koncentrátoru připojení a vyvažování zátěže komplexu subsystémů produktu DB2 Connect.
Koncentrátor připojení Ovladač DB2 Universal JDBC může omezit prostředky, které databázové servery DB2 UDB for z/OS(R) vyžadují pro podporu velkého počtu klientských aplikací tím, že množství objektů připojení může využívat stejné fyzické připojení, což snižuje celkový počet fyzických připojení k databázovému serveru.
Vyvažování zátěže komplexu subsystémů Ovladač DB2 Universal JDBC umožňuje zlepšit dostupnost skupiny sdílení dat, protože ovladač získává časté informace o stavu členů skupiny sdílení dat. Ovladač pomocí těchto informací určí člena sdílení dat, ke kterému má být směrována následující transakce. Server DB2 UDB for z/OS a správce WLM pro systém z/OS pomocí vyvažování zátěže komplexu subsystémů zajišťují, aby byla zátěž efektivně rozdělována mezi členy skupiny sdílení dat a přenesena na jiného člena této skupiny, pokud dojde k selhání jednoho člena skupiny.
Ovladač Ovladač DB2 Universal JDBC podporuje koncentrátor připojení a vyvažování zátěže komplexu subsystémů pomocí transportních objektů a globálního fondu transportních objektů. Pro každé fyzické připojení k databázovému serveru existuje jeden transportní objekt. Při povolení koncentrátoru připojení a vyvažování zátěže komplexu subsystémů určíte nastavením maximálního počtu transportních objektů maximální počet fyzických připojení k databázovému serveru v libovolném časovém okamžiku.
Na úrovni ovladače nastavíte omezení transportních objektů pomocí vlastností konfigurace Ovladač DB2 Universal JDBC.
Na úrovni připojení povolíte nebo zakážete koncentrátor připojení a vyvažování zátěže komplexu subsystémů Ovladač DB2 Universal JDBC a nastavíte omezení počtu transportních objektů pomocí vlastností zdroje dat.
Globální fond transportních objektů lze monitorovat některým z následujících způsobů:
Pro koncentrátor připojení a vyvažování zátěže komplexu subsystémů se používají následující vlastnosti konfigurace:
Datový typ vlastnosti db2.jcc.dumpPool je celé číslo. Před zápisem statistiky musí být nastaveny vlastnosti konfigurace db2.jcc.dumpPoolStatisticsOnSchedule a db2.jcc.dumpPoolStatisticsOnScheduleFile.
Společně s vlastností db2.jcc.dumpPool můžete zadat jeden nebo několik následujících typů statistiky:
Chcete-li trasovat více než jeden typ události, přidejte hodnoty pro typy událostí, které chcete trasovat. Předpokládejme, že chcete trasovat například události DUMP_GET_OBJECT a DUMP_CREATE_OBJECT. Číselné ekvivalenty těchto hodnot jsou 2 a 16, proto jako hodnotu db2.jcc.dumpPool zadáte číslo 18.
Výchozí hodnota je 0, což znamená, že pro globální fond transportu je zapsána pouze souhrnná statistika.
Výchozí hodnota je 1, při které není statistika globálního fondu transportu zapisována.
Pokud není vlastnost konfigurace db2.jcc.dumpPoolStatisticsOnScheduleFile zadána, není statistika globálního fondu transportu zapisována.
Výchozí hodnota vlastnosti konfigurace db2.jcc.maxTransportObjectIdleTime je 60. Při nastavení vlastnosti db2.jcc.maxTransportObjectIdleTime na hodnotu menší než 0 budou nepoužité transportní objekty odstraněny z fondu okamžitě. Tato akce není doporučena, protože může způsobit výrazné snížení výkonu.
Výchozí hodnota vlastnosti konfigurace db2.jcc.maxTransportObjectWaitTime je -1. Při jakékoli záporné hodnotě čekají aplikace neomezeně dlouho.
Výchozí hodnota pro vlastnost konfigurace db2.jcc.maxTransportObjects je -1, při které není počet transportních objektů v globálním fondu transportů omezen.
Výchozí hodnota vlastnosti konfigurace db2.jcc.minTransportObjects je 0. Jakákoli hodnota menší nebo rovna 0 znamená, že se globální fond transportních objektů může vyprázdnit.
Pro koncentrátor připojení a vyvažování zátěže komplexu subsystémů se používají následující vlastnosti zdroje dat Ovladač DB2 Universal JDBC:
Datový typ vlastnosti enableConnectionConcentrator je booleovský. Výchozí hodnota je false. Pokud je však vlastnost enableSysplexWLB nastavena na hodnotu true, je výchozí hodnota true.
Datový typ vlastnosti enableSysplexWLB je booleovský. Výchozí hodnota je false. Pokud je však vlastnost enableSysplexWLB nastavena na hodnotu true, je ve výchozím nastavení vlastnost enableConnectionConcentrator nastavena na hodnotu true.
Datový typ této vlastnosti je celé číslo.
Pokud nebylo dosaženo hodnoty maxTransportObjects a v globálním fondu transportních objektů není k dispozici žádný transportní objekt, vytvoří fond nový transportní objekt. Pokud bylo dosaženo hodnoty maxTransportObjects, čeká aplikace po dobu určenou vlastností konfigurace db2.jcc.maxTransportObjectWaitTime. Pokud po uplynutí této doby není ve fondu stále k dispozici žádný transportní objekt, předá fond výjimku SQL.
Vlastnost maxTransportObjects nepřepisuje vlastnost konfigurace db2.jcc.maxTransportObjects. Vlastnost maxTransportObjects nemá žádný vliv na připojení z jiných objektů zdroje dat. Pokud je hodnota maxTransportObjects větší než hodnota db2.jcc.maxTransportObjects, vlastnost maxTransportObjects nezvýší hodnotu db2.jcc.maxTransportObjects.
Výchozí hodnota vlastnosti maxTransportObjects je -1, při které je počet transportních objektů pro zdroj dat omezen pouze hodnotou vlastnosti db2.jcc.maxTransportObjects pro ovladač.
V následujícím postupu je uveden příklad povolení funkcí koncentrátoru připojení a vyvažování zátěže komplexu subsystémů Ovladač DB2 Universal JDBC u produktu WebSphere(R) Application Server.
Požadavky na server:
Požadavky na klienta:
Při povolení funkcí koncentrátoru připojení a vyvažování zátěže komplexu subsystémů Ovladač DB2 Universal JDBC u produktu WebSphere Application Server postupujte takto:
java com.ibm.db2.jcc.DB2Jcc -versionVe výstupu vyhledejte řádek podobný následujícímu:
[ibm][db2][jcc] Driver: IBM DB2 JDBC Universal Driver Architecture n nn by měla být verze 2.7 nebo vyšší.
Nastavte následující vlastnosti v souboru DB2JccConfiguration.properties.
db2.jcc.minTransportObjects=0 db2.jcc.maxTransportObjects=1500 db2.jcc.maxTransportObjectWaitTime=-1 db2.jcc.dumpPool=0 db2.jcc.dumpPoolStatisticsOnScheduleFile= /home/WAS/logs/srv1/poolstats
V administrační konzole produktu WebSphere Application Server nastavte následující vlastnosti pro zdroj dat, který aplikace používají pro připojení k databázovému serveru:
Chcete-li monitorovat funkce koncentrátoru připojení a vyvažování zátěže komplexu subsystémů Ovladač DB2 Universal JDBC, je nutné monitorovat globální fond transportních objektů. Globální fond transportních objektů lze monitorovat některým z následujících způsobů:
Trasování globálního fondu transportních objektů lze řídit pomocí vlastností konfigurace db2.jcc.dumpPool, db2.jcc.dumpPoolStatisticsOnSchedule a db2.jcc.dumpPoolStatisticsOnScheduleFile.
Při nastavení následující sady vlastností konfigurace budou například chybové zprávy komplexu subsystémů a fondu výpisu paměti zapisovány každých 60 sekund do souboru s názvem /home/WAS/logs/srv1/poolstats:
db2.jcc.dumpPool=DUMP_SYSPLEX_MSG|DUMP_POOL_ERROR db2.jcc.dumpPoolStatisticsOnSchedule=60 db2.jcc.dumpPoolStatisticsOnScheduleFile=/home/WAS/logs/srv1/poolstats
Položka v souboru statistiky fondu může vypadat takto:
čas Naplánováno - PoolStatistics npr:2575 nsr:2575 lwroc:439 hwroc:1764 coc:372 aooc:362 rmoc:362 nbr:2872 tbt:857520 tpo:10
Význam jednotlivých polí je následující:
Můžete vytvořit aplikace, které shromažďují statistiku globálního fondu transportních objektů. Tyto aplikace vytvářejí objekty ve třídě DB2PoolMonitor a vyvolávají metody pro načítání informací o fondu.
Následující kód například vytvoří objekt pro monitorování globálního fondu transportních objektů:
import com.ibm.db2.jcc.DB2PoolMonitor; DB2PoolMonitor transportObjectPoolMonitor = DB2PoolMonitor.getPoolMonitor (DB2PoolMonitor.TRANSPORT_OBJECT);
Po vytvoření objektu DB2PoolMonitor můžete globální fond transportních objektů monitorovat pomocí následujících metod.
public int getMonitorVersion()
Načte verzi třídy DB2PoolMonitor, která je dodána s ovladačem Ovladač DB2 Universal JDBC.
public int totalRequestsToPool()
Načte celkový počet požadavků, které ovladač Ovladač DB2 Universal JDBC odeslal do fondu od vytvoření fondu.
public int successfullRequestsFromPool()
Načte počet úspěšných požadavků, které ovladač Ovladač DB2 Universal JDBC odeslal do fondu od vytvoření fondu. Úspěšný požadavek znamená, že fond vrátil objekt.
public int numberOfRequestsBlocked()
Načte počet požadavků, které ovladač Ovladač DB2 Universal JDBC odeslal do fondu, jež byly fondem zablokovány, protože fond dosáhl své maximální kapacity. Blokovaný požadavek může být úspěšný, pokud je do fondu vrácen objekt dříve, než je překročena konfigurační hodnota db2.jcc.maxTransportObjectWaitTime a předána výjimka.
public long totalTimeBlocked()
Načte celkovou dobu v milisekundách pro požadavky blokované fondem. Pokud aplikace používá několik podprocesů, může být tato doba mnohem delší než uplynulá doba provedení aplikace.
public int lightWeightReusedObjectCount()
Načte počet objektů, které byly opětovně použity, ale nebyly ve fondu. K tomu může dojít, pokud objekt připojení uvolní transportní objekt na rozhraní transakce. Pokud objekt připojení potřebuje transportní objekt později, přičemž původní transportní objekt nebyl použit žádným jiným objektem připojení, může objekt připojení použít tento transportní objekt.
public int heavyWeightReusedObjectCount()
Načte počet objektů, které byly opětovně použity z fondu.
public int createdObjectCount()
Načte počet objektů, které ovladač Ovladač DB2 Universal JDBC vytvořil od vytvoření fondu.
public int agedOutObjectCount()
Načte počet objektů, jejichž doba nečinnosti přesáhla hodnotu určenou vlastností konfigurace db2.jcc.maxTransportObjectIdleTime, a byly proto odstraněny z fondu.
public int removedObjectCount()
Načte počet objektů, které byly z fondu odstraněny od vytvoření fondu.
public int totalPoolObjects()
Počet objektů, které jsou aktuálně ve fondu.
Klíčové slovo OleDbReportIsLongForLongTypes je podporováno následujícími databázovými servery:
Stroj kurzoru klienta OLE DB a modul CommandBuilder Poskytovatele dat OLE DB .NET vygenerují aktualizaci a odstraní příkazy založené na informacích sloupce dodané Poskytovatelem rozhraní IBM DB2 OLE DB. Pokud generovaný příkaz obsahuje typ LONG v klauzuli WHERE, dojde k selhání příkazu, protože typy LONG nelze použít ve vyhledávání s operátorem rovnosti. Nastavení klíčového slova OleDbReportIsLongForLongTypes na hodnotu 1 způsobí, že Poskytovatel rozhraní IBM DB2 OLE DB opatří typy LONG (LONG VARCHAR, LONG VARCHAR FOR BIT DATA, LONG VARGRAPHIC a LONG VARGRAPHIC FOR BIT DATA) sadou příznaků DBCOLUMNFLAGS_ISLONG. Tím budou slupce typu LONG chráněny před použitím v klauzuli WHERE.
Klíčové slovo OleDbSQLColumnsSortByOrdinal je podporováno následujícími databázovými servery:
Specifikace produktu Microsoft OLE DB vyžaduje, aby příkaz IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) vracel sadu řádků seřazenou podle sloupců TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME. Poskytovatel rozhraní IBM DB2 OLE DB je této specifikaci přizpůsoben. Aplikace používající modul Microsoft ODBC Bridge provider (MSDASQL) byly ovšem typicky kódovány tak, aby přijímaly sadu řádků seřazenou podle položky ORDINAL_POSITION. Nastavením klíčového slova OleDbSQLColumnsSortByOrdinal na hodnotu 1 zajistí, aby poskytovatel vracel sadu řádků seřazenou podle položky ORDINAL_POSITION.
Poskytovatel rozhraní IBM DB2 OLE DB byl rozšířen o novou skupinu vlastností: Zdroj dat DB2. Sada vlastností pro Zdroj dat DB2 je DBPROPSET_DB2DATASOURCE.
Položka GUID pro sadu vlastností má hodnotu {0x8a80412a,0x7d94,0x4fec,{0x87,0x3e,0x6c,0xd1,0xcd,0x42,0x0d,0xcd}}
Sada DBPROPSET_DB2DATASOURCE obsahuje tři vlastnosti:
#define DB2PROP_REPORTISLONGFORLONGTYPES 4 Property group: DB2 Data Source Property set: DB2PROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Report IsLong for Long Types
Stroj kurzoru klienta OLE DB a modul CommandBuilder Poskytovatele dat OLE DB .NET vygenerují aktualizaci a odstraní příkazy založené na informacích sloupce dodané Poskytovatelem rozhraní IBM DB2 OLE DB. Pokud generovaný příkaz obsahuje typ LONG v klauzuli WHERE, dojde k selhání příkazu, protože typy LONG nelze použít ve vyhledávání s operátorem rovnosti.
Hodnoty | Význam |
---|---|
VARIANT_TRUE | Způsobí, že Poskytovatel rozhraní IBM DB2 OLE DB opatří typy LONG (LONG VARCHAR, LONG VARCHAR FOR BIT DATA, LONG VARGRAPHIC a LONG VARGRAPHIC FOR BIT DATA) sadou příznaků DBCOLUMNFLAGS_ISLONG. Tím budou slupce typu LONG chráněny před použitím v klauzuli WHERE. |
VARIANT_FALSE | Parametr DBCOLUMNFLAGS_ISLONG není nastaven pro typy LONG VARCHAR, LONG VARCHAR FOR BIT DATA, LONG VARGRAPHIC a LONG VARGRAPHIC FOR BIT DATA. Toto nastavení je výchozí. |
#define DB2PROP_RETURNCHARASWCHAR 2 Property group: DB2 Data Source Property set: DB2PROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Return Char as WChar
Hodnoty | Význam |
---|---|
VARIANT_TRUE | Modul OLE DB popisuje sloupce typu CHAR, VARCHAR, LONG VARCHAR, nebo CLOB jako DBTYPE_WSTR. Kódová stránka dat obsažená v položce ISequentialStream bude mít hodnotu UCS-2. Toto nastavení je výchozí. |
VARIANT_FALSE | Modul OLE DB popisuje sloupce typu CHAR, VARCHAR, LONG VARCHAR, nebo CLOB jako DBTYPE_STR. Kódová stránka dat obsažená v položce ISequentialStream bude lokální kódovou stránkou klienta. |
#define DB2PROP_SORTBYORDINAL 3 Property group: DB2 Data Source Property set: DB2PROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Sort By Ordinal
Specifikace produktu Microsoft OLE DB vyžaduje, aby příkaz IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) vracel sadu řádků seřazenou podle sloupců TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME. Poskytovatel rozhraní IBM DB2 OLE DB je této specifikaci přizpůsoben. Aplikace používající modul Microsoft ODBC Bridge provider (MSDASQL) byly ovšem typicky kódovány tak, aby přijímaly sadu řádků seřazenou podle položky ORDINAL_POSITION.
Hodnoty | Význam |
---|---|
VARIANT_TRUE | Zajistí, aby poskytovatel vracel sadu řádků seřazenou podle položky ORDINAL_POSITION. |
VARIANT_FALSE | Zajistí, aby poskytovatel vracel sadu řádků seřazenou podle položek TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME. Toto nastavení je výchozí. |
V tématu "Instalace ovladače DB2 Universal JDBC" diagram syntaxe DB2Binder nesprávně definuje syntaxi URL pro ovladače DB2 Universal JDBC. Správná reprezentace syntaxe URL pro diagram DB2Binder je uvedena v následujícím diagramu:
Funkce automatické přesměrování klientů v produktu DB2 Universal Database (UDB) pro systémy Linux, UNIX, a Windows umožňuje klientským aplikacím zotavit se z přerušení komunikace se serverem. Aplikace proto mohou pokračovat v práci s minimálním přerušením.
Kdykoli se server uzamkne, obdrží každý klient připojený k tomuto serveru chybu komunikace, která ukončí připojení a vyústí v chybu aplikace. V případech, kdy záleží na dostupnosti, byste měli mít redundantní nastavení nebo podporu překonání selhání. (Překonání selhání je schopnost serveru převzít operace při selhání jiného serveru.) Klient ovladače DB2 Universal JDBC se vždy pokusí znovu navázat připojení k novému serveru nebo k serveru původnímu, který může být spuštěn na uzlu překonání selhání. Po novém navázání připojení obdrží aplikace výjimku SQLException, která informuje o selhání transakce. Aplikace ale může pokračovat další transakcí.
Poté, co administrátor databáze zadá v konkrétní databázi na instanci serveru umístění alternativního serveru, bude umístění primárního a alternativního serveru vráceno v čase připojení zpět klientovi. Ovladač DB2 Universal JDBC vytvoří instanci odkazovatelného objektu DB2ClientRerouteServerList a uloží tuto instanci do své dočasné paměti. Pokud je komunikace přerušena, pokusí se ovladač DB2 Universal JDBC znovu navázat připojení, a to pomocí informací o serveru, které byly ze serveru vráceny.
Vlastnost zdroje dat clientRerouteServerListJNDIName poskytuje na klientovi další podporu přesměrování klienta. Parametr clientRerouteServerListJNDIName má dvě funkce:
Vlastnost clientRerouteServerListJNDIName označuje referenci JNDI do instance DB2ClientRerouteServerList v úložišti JNDI v informacích alternativního serveru. Po úspěšném připojení k primárnímu serveru budou informace alternativního serveru, udávané vlastností clientRerouteServerListJNDIName, přepsány informacemi z tohoto serveru. Je-li definována vlastnost clientRerouteServerListJNDIName, ovladač DB2 Universal JDBC se po překonání selhání pokusí předat aktualizované informace do úložiště JNDI. Pokud je definována vlastnost clientRerouteServerListJNDIName, použijí se pro připojení informace primárního serveru zadané ve vlastnosti DB2ClientRerouteServerList. Není-li primární server určen, použijí se informace o jménu serveru zadané ve zdroji dat.
Položka DB2ClientRerouteServerList je serializovatelný modul Java Bean se čtyřmi vlastnostmi:
Pro přístup k těmto vlastnostem jsou k dispozici metody pro příjem a ukládání. Definice třídy DB2ClientRerouteServerList je následující:
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 (); }
Nově navázané připojení po překonání selhání je konfigurováno s původními vlastnostmi zdroje dat, až na jméno serveru a číslo portu. Kromě toho všechny speciální registry DB2 UDB, které byly během původního připojení změněny, budou během připojení prostřednictvím ovladače DB2 Universal JDBC po překonání selhání znovu nastaveny.
Dojde-li k chybě komunikace, pokusí se ovladač DB2 Universal JDBC nejdříve zotavit primární server. Dojde-li k selhání, pokusí se ovladač připojit k alternativnímu umístění (překonání selhání). Po navázání připojení předá ovladač aplikaci výjimku java.sql.SQLException s kódem SQLCODE -4498, která aplikaci upozorní, že došlo k automatickému novému připojení k alternativnímu serveru. Aplikace pak může pokus o transakci zopakovat.
Chcete-li nastavit úložný prostor rak, aby nastavil vlastnost DB2ClientRerouteServerList trvale, postupujte takto:
// Create a starting context for naming operations InitialContext registry = new InitialContext(); // Create a DB2ClientRerouteServerList object DB2ClientRerouteServerList address=new DB2ClientRerouteServerList(); // Set the port number and server name for the primary server address.setPrimaryPortNumber(50000); address.setPrimaryServerName("mvs1.sj.ibm.com"); // Set the port number and server name for the alternate server int[] port = {50002}; String[] server = {"mvs3.sj.ibm.com"}; address.setAlternatePortNumber(port); address.setAlternateServerName(server); registry.rebind("serverList", address);
datasource.setClientRerouteServerListJNDIName("serverList");
Vlastnosti konfigurace ovladače DB2 Universal JDBC umožňují nastavit hodnoty vlastností týkajících se ovladače. Tato nastavení budou platit pro všechny aplikace a instance DataSource. Nastavení je možné změnit, aniž byste museli měnit zdrojový kód aplikace nebo charakteristiku zdroje dat.
Všechna nastavení vlastností konfigurace ovladače DB2 Universal JDBC mají následující tvar:
vlastnost=hodnota
Pokud vlastnost konfigurace začíná řetězcem db2.jcc.override, bude tato vlastnost použitelná pro všechna připojení a přepíše všechny vlastnosti připojení a zdrojů dat se stejným jménem vlastnosti. Jestliže vlastnost konfigurace začíná řetězcem db2.jcc or db2.jcc.default, je hodnota vlastnosti konfigurace standardní. Nastavení vlastností zdrojů dat nebo připojení tuto hodnotu přepíší.
Chcete-li nastavit vlastnosti konfigurace, postupujte takto:
U samostatných aplikací jazyka Java můžete nastavit vlastnosti konfigurace jako systémové vlastnosti Java při provádění příkazu -Dvlastnost=hodnota zadáním parametru pro každou vlastnost java konfigurace.
U samostatných aplikací jazyka Java můžete nastavit vlastnosti konfigurace -Ddb2.jcc.propertiesFile=cesta při provádění příkazu java.
Soubor DB2JccConfiguration.properties může být samostatným souborem, nebo může být součástí souboru JAR.
Je-li soubor DB2JccConfiguration.properties samostatným souborem, musí být cesta k souboru DB2JccConfiguration.properties součástí řetězce CLASSPATH.
Je-li soubor DB2JccConfiguration.properties v souboru JAR, musí být součástí řetězce CLASSPATH soubor JAR.
Lze nastavit následující vlastnosti konfigurace ovladače DB2 Universal JDBC. Všechny vlastnosti jsou nepovinné.
Zadejte úplné jméno souboru pro hodnotu vlastnosti db2.jcc.override.traceFile.
Vlastnost db2.jcc.override.traceFile přepíše vlastnost traceFile pro objekty Connection nebo DataSource.
Například následující zadání vlastnosti db2.jcc.override.traceFile povoluje trasování kódu Java ovladače DB2 Universal JDBC do souboru jménem /SYSTEM/tmp/jdbctrace :
db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace
Vlastnosti trasování byste měli nastavovat podle pokynů softwarové podpory společnosti IBM.
Funkce db2secFreeToken (volná paměť držená prvkem) již není součástí rozhraní API modulu plug-in ověření uživatele db2secGssapiServerAuthFunctions_1.
Integrita instalace produktu DB2 Universal Database (UDB) může být ohrožena, není-li implementace modulů plug-in zabezpečení odpovídajícím způsobem kódována, kontrolována a testována. Produkt DB2 UDB obsahuje opatření proti mnoha běžným typům selhání, ale nemůže zajistit úplnou integritu při implementaci uživatelem vytvořených modulů plug-in zabezpečení.
Používáte-li vlastní přizpůsobené moduly plug-in zabezpečení, můžete v příkazu připojení zadaném pomocí příkazového procesoru nebo v dynamickém příkazu SQL použít jméno uživatele až o 255 znacích.
Pro rozhraní API db2secGetGroupsForUser, db2secValidatePassword a db2secGetAuthIDs může mít vstupní parametr dbname hodnotu NULL a odpovídající vstupní parametr délky dbnamelen bude nastaven na hodnotu 0.
Přípona .so je nyní přijímána jako přípona jména souboru pro uživatelské knihovny modulů plug-in zabezpečení, a to ve všech platformách Linux and UNIX.
Na platformě AIX mají knihovny zabezpečení typu plug-in příponu .a nebo .so. Pokud obě verze knihovny modulu plug-in již existují, bude použita verze .a.
V prostředí HP-UX na procesorech PA-RISC mohou mít knihovny modulů plug-in zabezpečení příponu .sl nebo .so. Pokud obě verze knihovny modulu plug-in již existují, bude použita verze .sl.
Na všech ostatních platformách Linux a UNIX je přípona .so jedinou podporovanou příponou jména souboru pro knihovny modulů plug-in zabezpečení.
V systému AIX mohou mít knihovny modulů plug-in zabezpečení příponu .a nebo .so. Mechanismus pro načítání knihoven modulů plug-in závisí na použité příponě:
Chcete-li například sestavit knihovnu modulů plug-in stylu 32bitového archivu, postupujte takto:
xlc_r -qmkshrobj -o shr.o MyPlugin.c -bE:MyPlugin.exp ar rv MyPlugin.a shr.o
xlc_r -qmkshrobj -o MyPlugin.so MyPlugin.c -bE:MyPlugin.exp
Na všech ostatních platformách, jiných než AIX, jsou knihovny modulů plug-in vždy pokládány za dynamicky načítatelné sdílené objekty.
| | |Ve vydání produktu DB2 UDB verze 8.2 pro systémy Linux, UNIX a Windows můžete vytvářet vlastní mechanismy pro ověřování ve formě modulů plug-in (knihoven s možností načtení). Načítání těchto modulů plug-in a přístup k nim za účelem ověřování uživatelů provádí jádro produktu DB2 UDB. Za účelem podpory zákaznických aplikací napsaných v jazyce Java je v produktu DB2 UDB verze 8.2 s opravnou sadou FixPak 4 poskytována ovladačem DB2 Universal JDBC podpora modulů plug-in pro zabezpečení.
|Pro aplikace jazyka Java používající ovladač DB2 Universal JDBC k ověřování prostřednictvím modulu plug-in musí uživatelé implementovat vlastní modul plug-in rozšířením abstraktní třídy com.ibm.db2.jcc.DB2JCCPlugin a nastavením následujících vlastností:
|Seznamte se s následujícím příkladem:
|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);
Ověřování GSS-API je omezeno na tok jednoho prvku z klienta na server a jednoho prvku ze serveru na klienta. Tyto prvky se získávají z parametru gss_init_sec_context() na klientovi a gss_accept_sec_context() na serveru. Moduly plug-in GSS-API, které se pokusí o práci s dalšími toky, vygenerují neočekávanou chybu modulu plug-in zabezpečení a způsobí tak selhání připojení.
Šifrování zpráv a podepisování není v modulech plug-in zabezpečení GSS-API podporováno.
Všechna ukončení aplikací (běžná i nestandardní) implicitně odvolají nevyřízené transakce, a to bez závislosti na operačním systému.
V dokumentaci Novinky produktu DB2 Universal Database (UDB) verze 8.2 jsou v sekci týkající se vylepšení ovladače DB2 Universal JDBC o podporu distribuovaných transakcí uvedeny chybné informace. Poslední věta této sekce je nesprávná. Správná informace je následující:
Od verze 8.2 nabízí produkt DB2 UDB podporu zpracování distribuovaných transakcí, která odpovídá specifikaci XA. Tato podpora implementuje specifikace Java 2 Platform Enterprise Edition (J2EE), Java Transaction Service (JTS) a Java Transaction API (JTA).
[ Začátek stránky |Předchozí stránka | Další stránka | Obsah ]