私は(これを理解しようとして引っ張ったすべての髪の毛の上で)それがバグなのか、それとも私が正しくやっていないのかわからないことにつまずきました。
拡張ライブラリ (v9) の最新バージョンを UpdateSite DB 経由でドミノ 8.5.3FP2 サーバーにインストールし、同じ UpdateSite DB 経由で OSGI DB2 ドライバーもインストールしました。
この後、XpagesJDBC.nsf データベースが DB2 Express-C データベース (db2.jdbc ファイル) を指すように構成し、テストを開始しました。ホームページのセットアップ関数で作成された 2 つのテーブル (ユーザー、状態) のデータを使用すると、すべてがうまく機能します。
次に、xpages.DBUtil Java クラスを変更してスキーマ名を変更し、 xpages.DataInitializer Java クラスを変更して同じ 2 つのテーブルを作成しましたが、SQL ステートメントの一部としてスキーマ名を使用しました。(例: "create table users (..."から"create table mySchema.users (.." )
ホームページでセットアップ機能を再実行し、テーブルを作成して正しいデータを入力しました。メタデータ機能 (左側のナビゲーション) はすべて 100% 機能し、テーブルとスキーマが正しく表示されます。
ただし、JDBC_RowSetDatasource ページではすべてがバラバラになります。データソースの SQLTable を "users" から "mySchema.users" に変更するとうまく機能し、ページ上のすべてが機能します
<xp:this.data>
<xe:jdbcRowSet connectionName="db2" var="jdbcData1" sqlTable="users" showDeleted="true">
</xe:jdbcRowSet>
</xp:this.data>
に
<xp:this.data>
<xe:jdbcRowSet connectionName="db2" var="jdbcData1" sqlTable="mySchema.users" showDeleted="true">
</xe:jdbcRowSet>
</xp:this.data>
.acceptChanges() メソッド呼び出しを除きます。
<xp:button value="Save Changes" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:jdbcData1.acceptChanges()}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
変更を DB にコミットしようとすると、SQL 例外が発生します (以下を参照)。
SQLCODE -108 は次のように述べています: [SQL0108N The name "" has the wrong number of qualifiers] .
何か間違ったことをしていますか、それともログに記録する必要がある欠陥ですか? カスタム スキーマの使用時に問題があるように見えますか? 長いメッセージありがとうございます:)
SQL スタック トレース
HTTP JVM: com.ibm.db2.jcc.am.mo: DB2 SQL Error: SQLCODE=-108, SQLSTATE=42601, SQLERRMC=USERS, DRIVER=4.7.85
HTTP JVM: at com.ibm.db2.jcc.am.dd.a(dd.java:676)
HTTP JVM: at com.ibm.db2.jcc.am.dd.a(dd.java:60)
HTTP JVM: at com.ibm.db2.jcc.am.dd.a(dd.java:127)
HTTP JVM: at com.ibm.db2.jcc.am.nm.c(nm.java:2493)
HTTP JVM: at com.ibm.db2.jcc.am.nm.d(nm.java:2470)
HTTP JVM: at com.ibm.db2.jcc.am.nm.a(nm.java:1950)
HTTP JVM: at com.ibm.db2.jcc.t4.db.g(db.java:139)
HTTP JVM: at com.ibm.db2.jcc.t4.db.a(db.java:39)
HTTP JVM: at com.ibm.db2.jcc.t4.t.a(t.java:32)
HTTP JVM: at com.ibm.db2.jcc.t4.sb.h(sb.java:135)
HTTP JVM: at com.ibm.db2.jcc.am.nm.gb(nm.java:1921)
HTTP JVM: at com.ibm.db2.jcc.am.om.kc(om.java:2806)
HTTP JVM: at com.ibm.db2.jcc.am.om.qc(om.java:2921)
HTTP JVM: at com.ibm.db2.jcc.am.om.setObject(om.java:1738)
HTTP JVM: at com.ibm.xsp.extlib.jdbc.datasource.xpages.JdbcPoolConnection$PoolPreparedStatement.setObject(JdbcPoolConnection.java:1006)
HTTP JVM: at com.sun.rowset.internal.CachedRowSetWriter.updateOriginalRow(CachedRowSetWriter.java:495)
HTTP JVM: at com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowSetWriter.java:355)
HTTP JVM: at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:875)
HTTP JVM: at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:934)
HTTP JVM: at com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor.acceptChanges(JdbcRowSetAccessor.java:425)
HTTP JVM: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
HTTP JVM: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
HTTP JVM: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
HTTP JVM: at java.lang.reflect.Method.invoke(Method.java:611)
HTTP JVM: at com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:321)
HTTP JVM: at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161)
HTTP JVM: at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:175)
HTTP JVM: at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
HTTP JVM: at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
HTTP JVM: at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
HTTP JVM: at com.ibm.jscript.JSExpression.access$1(JSExpression.java:424)
HTTP JVM: at com.ibm.jscript.JSExpression$2.run(JSExpression.java:414)
HTTP JVM: at java.security.AccessController.doPrivileged(AccessController.java:284)
HTTP JVM: at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410)
HTTP JVM: at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
HTTP JVM: at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)
HTTP JVM: at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:221)
HTTP JVM: at com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:111)
HTTP JVM: at com.ibm.xsp.application.ActionListenerImpl.processAction(ActionListenerImpl.java:60)
HTTP JVM: at javax.faces.component.UICommand.broadcast(UICommand.java:324)
HTTP JVM: at com.ibm.xsp.component.UIEventHandler.broadcast(UIEventHandler.java:366)
HTTP JVM: at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400)
HTTP JVM: at com.ibm.xsp.extlib.component.layout.UIVarPublisherBase.broadcast(UIVarPublisherBase.java:183)
HTTP JVM: at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400)
HTTP JVM: at com.ibm.xsp.component.UIViewRootEx.broadcast(UIViewRootEx.java:1535)
HTTP JVM: at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:307)
HTTP JVM: at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:428)
HTTP JVM: at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)
HTTP JVM: at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
HTTP JVM: at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)
HTTP JVM: at com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:250)
HTTP JVM: at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:223)
HTTP JVM: at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:204)
HTTP JVM: at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
HTTP JVM: at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
HTTP JVM: at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:583)
HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1281)
HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:854)
HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:803)
HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:572)
HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1265)
HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:658)
HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:481)
HTTP JVM: at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341)
HTTP JVM: at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297)
HTTP JVM: at com.ibm.domino.xsp.bridge.
HTTP.engine.XspCmdManager.service(XspCmdManager.java:272)