![]() |
![]() |
|
|
| |
FAQ: dbKona
JDBC と dbKona はどのように関連しているのですか。
Java Database Connectivity(JDBC)は JavaSoft の仕様です。この仕様は、データベースにアクセスする Java アプリケーションを記述するための標準的な方法を規定しています。Sun では、「より高いレベルのツールやインタフェースを構築できる共通の基盤」と JDBC を定義しています。dbKona は JDBC より高レベルのインタフェースですが、WebLogic jDriver JDBC ドライバなどの JDBC ドライバを必要とします。dbKona は、ベンダに依存しない快適なデータ アクセスを実現します。dbKona では、クエリ結果のクライアントサイド管理と自動 SQL 生成が可能です。dbKona オブジェクトを使用すれば、データベース データを操作するためにベンダ固有の知識を得る必要がありません。さらに、dbKona オブジェクトは JDBC インタフェースの準拠と相互運用性を実現します。たとえば、dbKona を使用すると、さまざまなデータベースと対話できる単一の Java アプリケーションを記述できます。
dbKona はプラグアンドプレイ API(さまざまな DBMS を同時にサポートする手段)として設計されているため、JDBC 仕様に準拠したどのベンダのドライバでも dbKona と組み合わせて使用できます。dbKona を使用するアプリケーションは、WebLogic の JDBC ドライバを含むあらゆる JDBC ドライバとスムーズに連携します。
WebLogic jDriver 製品と dbKona は、JDBC との互換性と dbKona のパワーを組み合わせて提供します。
dbKona は、リモート DBMS と通信するためにベンダ特有のネイティブ ライブラリを使用しますか。
dbKona は、任意の JDBC ドライバを使用してリモート DBMS と通信できます。2 層環境では、Type 2 JDBC ドライバを使用する場合は、dbKona アプリケーションを使用する各クライアントに、ベンダが提供するライブラリ(または適切な ODBC ドライバ)が必要となります。あるいは、ベンダのライブラリを必要としない Type 4 JDBC ドライバ(pure-Java)を使用することもできます。この 3 層配置では、dbKona は上位レベルのインタフェースとして JDBC ドライバの上に位置します。Type 2 JDBC ドライバを使用する場合、JDBC ドライバはベンダのライブラリを呼び出してデータベースにアクセスします。
WebLogic プール、JTS、および RMI JDBC ドライバの場合、dbKona アプリケーションまたはアプレットの代わりに、WebLogic Server を介して JDBC ドライバを呼び出すので、ベンダ ライブラリはクライアントサイドには必要ありません。
dbKona の場合と、JDBC を介した直接の SQL の場合で、パフォーマンスはどのように違うのですか。
dbKona は非常に軽量です。JDBC を直接使用した場合のデータ検索と比べて、パフォーマンスの低下はほとんどありません。その利点はオーバーヘッドをはるかに上回ります。よりシンプルで便利な API でデータにアクセスでき、サンプルを使用したクエリを通じて SQL の自動生成が可能になります。また、dbKona DataSets を使用すると、dbKona TableDataSet を WebLogic Server 側のクライアント ワークスペースに格納するなど、JDBC ResultSet では不可能なことができます。
クエリの結果を管理するツールを dbKona が提供するので、WebLogic の範囲内ではクライアントはむしろパフォーマンスの向上を実感するでしょう。先読みするために、データを WebLogic 上にキャッシュすることもできます。複数のクライアントで、クエリの結果を共有できます。「EventfulTableDataSet」を使用すると、同じテーブルを参照しているすべてのクライアントに対し、あるクライアントでの変更内容を反映させることも可能です。dbKona は、そのままの JDBC よりも強力なデータ処理が可能なので、クライアント アプリケーションを調整して最適なパフォーマンスを得ることができます。
変更の保存の際、dbKona TableDataSet はどうなるのですか。
TableDataSet
に対する変更を保存した後、その結果はそのまま維持され、fetchRecords()
メソッドを使用して引き続きレコードにアクセスできます。
TableDataSet
の作成時に使用した JDBC 接続とは異なる JDBC 接続で TableDataSet
を保存しても、TableDataSet
中のデータの整合性に影響はありません。もちろん、保存に使用した接続に、更新のための使用を不可能にするような何らかの履歴や状態(たとえば、更新のコミットを妨害したり、他の接続のロックによりデッドロックを起こすようなトランザクション状態である場合)があれば、必ずしも影響がないとはいえません。各接続がクライアントサイドで連携していても、DBMS では各接続を独立したアプリケーションであるとみなす必要があります。
![]() |
![]() |
![]() |