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 8na hodnotu 1 způsobí, že Poskytovatel rozhraní IBM DB2 OLE DB opatří typy LONG (LONG VARCHAR, LONG 8VARCHAR 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.
8 8 8Specifikace 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, 8COLUMN_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. 8Nastavením klíčového slova OleDbSQLColumnsSortByOrdinal na hodnotu 1 zajistí, aby poskytovatel vracel sadu řádků seřazenou podle položky ORDINAL_POSITION.
8 8 8Poskytovatel rozhraní IBM DB2 OLE DB byl rozšířen o novou skupinu vlastností: Zdroj dat DB2. 8Sada vlastností pro Zdroj dat DB2 je DBPROPSET_DB2DATASOURCE.
8Položka GUID pro sadu vlastností má hodnotu {0x8a80412a,0x7d94,0x4fec,{0x87,0x3e,0x6c,0xd1,0xcd,0x42,0x0d,0xcd}}
8Sada DBPROPSET_DB2DATASOURCE obsahuje tři vlastnosti:
8#define DB2PROP_REPORTISLONGFORLONGTYPES 4 8Property group: DB2 Data Source 8Property set: DB2PROPSET_DATASOURCE 8Type: VT_BOOL 8Typical R/W: R/W 8Description: Report IsLong for Long Types8
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.
8 8Hodnoty | 8Význam | 8
---|---|
VARIANT_TRUE | 8Způsobí, že Poskytovatel rozhraní IBM DB2 OLE DB opatří typy LONG (LONG VARCHAR, LONG 8VARCHAR 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. | 8
VARIANT_FALSE | 8Parametr DBCOLUMNFLAGS_ISLONG není nastaven pro typy LONG VARCHAR, LONG 8VARCHAR FOR BIT DATA, LONG VARGRAPHIC a LONG VARGRAPHIC FOR BIT DATA. Toto nastavení je výchozí. | 8
#define DB2PROP_RETURNCHARASWCHAR 2 8Property group: DB2 Data Source 8Property set: DB2PROPSET_DATASOURCE 8Type: VT_BOOL 8Typical R/W: R/W 8Description: Return Char as WChar8 8 8
Hodnoty | 8Význam | 8
---|---|
VARIANT_TRUE | 8Modul OLE DB popisuje sloupce typu CHAR, VARCHAR, LONG VARCHAR, 8nebo 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í. | 8
VARIANT_FALSE | 8Modul OLE DB popisuje sloupce typu CHAR, VARCHAR, LONG VARCHAR, 8nebo CLOB jako DBTYPE_STR. Kódová stránka dat obsažená v položce ISequentialStream bude lokální kódovou stránkou klienta. | 8
#define DB2PROP_SORTBYORDINAL 3 8Property group: DB2 Data Source 8Property set: DB2PROPSET_DATASOURCE 8Type: VT_BOOL 8Typical R/W: R/W 8Description: Sort By Ordinal8
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, 8COLUMN_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.
8 8Hodnoty | 8Význam | 8
---|---|
VARIANT_TRUE | 8Zajistí, aby poskytovatel vracel sadu řádků seřazenou podle položky ORDINAL_POSITION. | 8
VARIANT_FALSE | 8Zajistí, aby poskytovatel vracel sadu řádků seřazenou podle položek TABLE_CATALOG, 8TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME. Toto nastavení je výchozí. | 8
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:
8Funkce 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 8se serverem. Aplikace proto mohou pokračovat v práci s minimálním přerušením.
8Kdykoli se server uzamkne, obdrží každý 8klient připojený k tomuto serveru chybu 8komunikace, která ukončí připojení a vyústí 8v chybu aplikace. V případech, kdy záleží na 8dostupnosti, byste měli mít redundantní 8nastavení nebo podporu překonání selhání. (Překonání selhání je schopnost serveru 8převzít operace při selhání jiného serveru.) Klient ovladače DB2 Universal 8JDBC se vždy pokusí znovu navázat 8př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í 8připojení obdrží aplikace výjimku SQLException, která 8informuje o selhání transakce. Aplikace ale může 8pokračovat další transakcí.
8Poté, co administrátor databáze zadá 8v konkrétní databázi na instanci serveru umístění 8alternativního serveru, bude umístění primárního a alternativního 8serveru 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 8je 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.
8Vlastnost zdroje dat clientRerouteServerListJNDIName 8poskytuje na klientovi další podporu přesměrování 8klienta. Parametr clientRerouteServerListJNDIName má dvě funkce: 8
8Vlastnost 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 8informace alternativního serveru, udávané vlastností 8clientRerouteServerListJNDIName, přepsány informacemi z tohoto 8serveru. Je-li definována vlastnost clientRerouteServerListJNDIName, ovladač 8DB2 Universal JDBC se po překonání selhání pokusí 8př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.
8Položka DB2ClientRerouteServerList je serializovatelný modul Java Bean se čtyřmi vlastnostmi:
8Pro 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í: 8
8package com.ibm.db2.jcc; 8public class DB2ClientRerouteServerList 8 implements java.io.Serializable, 8 javax.naming.Referenceable 8{ 8 public String[] alternateServerName; 8 public synchronized void 8 setAlternateServerName(String[] alternateServer); 8 public String[] getAlternateServerName(); 8 public int[] alternatePortNumber; 8 public synchronized void 8 setAlternatePortNumber(int[] alternatePortNumberList); 8 public int[] getAlternatePortNumber(); 8 8 public synchronized void 8 setPrimaryServerName (String primaryServerName); 8 public String getPrimaryServerName (); 8 public synchronized void setPrimaryPortNumber (int primaryPortNumber) 8 public int getPrimaryPortNumber (); 8}8
Nově navázané připojení po překonání selhání je 8konfigurováno s původními vlastnostmi zdroje dat, až 8na jméno serveru a číslo portu. Kromě toho všechny 8speciální registry DB2 UDB, které byly během původního 8připojení změněny, budou během připojení prostřednictvím ovladače DB2 Universal JDBC po překonání 8selhání znovu nastaveny.
8Dojde-li k chybě komunikace, pokusí se ovladač 8DB2 Universal JDBC nejdříve zotavit primární server. Dojde-li 8k selhání, pokusí se ovladač 8připojit k alternativnímu umístění (překonání 8selhání). Po navázání připojení předá ovladač aplikaci 8výjimku java.sql.SQLException s kódem SQLCODE -4498, 8která aplikaci upozorní, že došlo k automatickému novému připojení k alternativnímu serveru. Aplikace pak může pokus o transakci 8zopakovat.
Chcete-li nastavit úložný prostor rak, aby nastavil vlastnost DB2ClientRerouteServerList trvale, postupujte takto:
8// Create a starting context for naming operations 8InitialContext registry = new InitialContext(); 8// Create a DB2ClientRerouteServerList object 8DB2ClientRerouteServerList address=new DB2ClientRerouteServerList(); 8 8// Set the port number and server name for the primary server 8address.setPrimaryPortNumber(50000); 8address.setPrimaryServerName("mvs1.sj.ibm.com"); 8 8// Set the port number and server name for the alternate server 8int[] port = {50002}; 8String[] server = {"mvs3.sj.ibm.com"}; 8address.setAlternatePortNumber(port); 8address.setAlternateServerName(server); 8 8registry.rebind("serverList", address);
datasource.setClientRerouteServerListJNDIName("serverList");
Vlastnosti konfigurace ovladače DB2 Universal JDBC umožňují nastavit hodnoty vlastností týkajících se 7ovladače. Tato nastavení budou platit pro všechny aplikace a instance DataSource. Nastavení 7je možné změnit, aniž byste museli měnit zdrojový kód 7aplikace nebo charakteristiku zdroje dat.
7Všechna nastavení vlastností konfigurace ovladače DB2 Universal JDBC mají následující 7tvar: 7
7vlastnost=hodnota
7Pokud vlastnost konfigurace začíná řetězcem 7db2.jcc.override, bude tato vlastnost použitelná pro 7všechna připojení a přepíše všechny vlastnosti 7připojení a zdrojů dat se stejným jménem vlastnosti. Jestliže vlastnost konfigurace začíná řetězcem db2.jcc 7or db2.jcc.default, je hodnota vlastnosti 7konfigurace standardní. Nastavení vlastností 7zdrojů dat nebo připojení tuto hodnotu 7přepíší.
7Chcete-li nastavit vlastnosti konfigurace, 7postupujte takto:
7 7U samostatných aplikací jazyka Java můžete nastavit vlastnosti 7konfigurace jako systémové vlastnosti Java při provádění příkazu -Dvlastnost=hodnota zadáním parametru pro každou vlastnost 7java konfigurace.
U samostatných aplikací jazyka Java můžete nastavit vlastnosti konfigurace 7-Ddb2.jcc.propertiesFile=cesta při provádění příkazu 7java.
Soubor 7DB2JccConfiguration.properties může být samostatným 7souborem, nebo může být součástí souboru JAR.
7Je-li 7soubor DB2JccConfiguration.properties samostatným 7souborem, musí být cesta k souboru 7DB2JccConfiguration.properties součástí řetězce CLASSPATH.
7Je-li soubor DB2JccConfiguration.properties 7v souboru JAR, musí být součástí řetězce CLASSPATH soubor 7JAR.
Lze nastavit následující vlastnosti konfigurace ovladače DB2 Universal JDBC. 7Všechny vlastnosti jsou nepovinné.
7Zadejte 7úplné jméno souboru pro hodnotu vlastnosti 7db2.jcc.override.traceFile.
7Vlastnost db2.jcc.override.traceFile přepíše 7vlastnost traceFile pro objekty Connection nebo 7DataSource.
7Například následující zadání vlastnosti 7db2.jcc.override.traceFile povoluje trasování kódu 7Java 7ovladače 7DB2 7Universal JDBC do souboru jménem 7/SYSTEM/tmp/jdbctrace : 7
7db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace
7Vlastnosti 7trasování byste měli nastavovat podle pokynů softwarové podpory společnosti IBM.
7Funkce db2secFreeToken (volná paměť držená 7prvkem) již není součástí rozhraní API modulu 7plug-in ověření uživatele 7db2secGssapiServerAuthFunctions_1.
8 8 8Integrita 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í.
7 7 7Používáte-li vlastní přizpůsobené moduly plug-in 7zabezpečení, můžete v příkazu připojení zadaném pomocí 7příkazového procesoru nebo v dynamickém příkazu SQL 7použít jméno uživatele až o 255 znacích.
7 7 7Pro rozhraní API db2secGetGroupsForUser, 7db2secValidatePassword a db2secGetAuthIDs může mít 7vstupní parametr dbname 7hodnotu NULL a odpovídající vstupní parametr délky 7dbnamelen bude nastaven 7na hodnotu 0.
7 7 7Přípona .so je nyní přijímána jako přípona jména souboru pro uživatelské 7knihovny modulů plug-in zabezpečení, a to ve všech platformách Linux and UNIX.
7V systému AIX mohou mít knihovny modulů plug-in zabezpečení příponu .a nebo .so. Pokud obě verze 7knihovny modulu plug-in již existují, bude použita 7verze .a.
7V systému HP-UX na procesoru PA-RISC mohou mít 7knihovny modulů plug-in 7zabezpečení příponu .sl 7nebo .so. Pokud obě 7verze knihovny modulu plug-in již existují, bude 7použita verze .sl.
7Na všech ostatních platformách Linux a UNIX je přípona .so jedinou podporovanou příponou jména souboru pro knihovny 7modulů plug-in zabezpečení.
7 7 7V systému AIX mohou mít knihovny modulů plug-in 7zabezpečení příponu .a nebo .so. Mechanismus 7pro načítání knihoven modulů plug-in závisí na použité 7příponě:
7Chcete-li 7například sestavit knihovnu modulů plug-in stylu 732bitového archivu, postupujte takto: 7
7 xlc_r -qmkshrobj -o shr.o MyPlugin.c -bE:MyPlugin.exp
7 ar rv MyPlugin.a shr.o
7xlc_r -qmkshrobj -o MyPlugin.so MyPlugin.c -bE:MyPlugin.exp7
Na všech ostatních platformách, jiných než AIX, jsou knihovny modulů plug-in vždy pokládány za 7dynamicky načítatelné sdílené objekty.
8 8 8Ověř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í.
8 8 8Šifrování zpráv a podepisování není v modulech plug-in zabezpečení GSS-API podporováno.
7 7 7Všechna ukončení aplikací (běžná 7i nestandardní) implicitně odvolají 7nevyřízené transakce, a to bez závislosti na 7operačním systému.
8 8 8V dokumentaci Novinky produktu DB2 Universal Database (UDB) verze 8.2 jsou v sekci týkající se vylepšení ovladače DB2 Universal JDBC 8o podporu distribuovaných transakcí uvedeny chybné informace. 8Poslední věta této sekce je nesprávná. Správná informace je následující:
8Od 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 8Platform, Enterprise Edition (J2EE) Java Transaction Service (JTS) a Java Transaction API (JTA).
[ Začátek stránky |Předchozí stránka | Další stránka | Obsah ]