1

MobileFirst Platform 6.3 で次のエラーが発生し続けます。

ランタイム: org.apache.commons.dbcp.SQLNestedException: PoolableConnectionFactory を作成できません (DB2 SQL エラー: SQLCODE=-142、SQLSTATE=42612、SQLERRMC=null、DRIVER=4.19.26)

これは私のアダプターコードです:

     var test2 = WL.Server.createSQLStatement("SELECT * FROM WSDIWC.WBPTRR1");

     function getCEID(cnum) {   
        return WL.Server.invokeSQLStatement({
            preparedStatement : test2,
            parameters : []
        });
     }

そしてアダプター XML:

     <connectivity>
        <connectionPolicy xsi:type="sql:SQLConnectionPolicy">
        <!-- Example for using a JNDI data source, replace with actual data source 
            name -->
        <!-- <dataSourceJNDIName>${training-jndi-name}</dataSourceJNDIName> -->

        <!-- Example for using MySQL connector, do not forget to put the MySQL 
            connector library in the project's lib folder -->
         <dataSourceDefinition>
              <driverClass>com.ibm.db2.jcc.DB2Driver</driverClass>
               <url>jdbc:db2://***</url>
               <user>**</user>
                <password>**</password>
            </dataSourceDefinition>
        </connectionPolicy>
    </connectivity>

URL、ユーザー、パスワードを削除しました。現在の問題についての説明を手伝っていただければ幸いです。

単純なクエリであるため、SQLが受け入れられないことは既に知っています。
また、同じエラー コード sqlcode=-142 の問題がある z/OS DB2 についても調査しました。http://answers.splunk.com/answers/117024/splunk-db-connect-db2.html

4

2 に答える 2

0

MobileFirst 6.3 のメインフレーム DB2 への JDBC 接続で、これと同じ問題に遭遇しました。DB2 LUW への接続は正常に機能しました。デフォルトのプールの validationQuery は DB2 LUW では有効ですが、DB2 z/OS では有効ではないようです。

Liberty プロファイルでデータ・ソース構成を行うことにより、バグを回避できますserver.xml。「Eclipseサーバー」ビューから、 MobileFirst Development Serverを展開し、サーバー構成を編集します。そこにドライバーとデータ ソースを追加します。例えば:

 <library id="db2jcc">
    <fileset dir="whereever" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/>
 </library>
 <dataSource id="db2" jndiName="jdbc/db2">
    <jdbcDriver libraryRef="db2jcc"/>
    <properties.db2.jcc databaseName="mydb" portNumber="5021" 
        serverName="myserver" user="myuser" password="mypw" />
 </dataSource>

次に、アダプター XML で次の場所を参照しますconnectionPolicy

 <dataSourceJNDIName>jdbc/db2</dataSourceJNDIName> 

(アダプター XML に対して) server.xml でデータ ソースを構成する利点は、すべてのデータ ソース、JDBC、および JCC プロパティにアクセスできることです。そのため、接続プールで他の問題が発生する場合は、それをカスタマイズするか、 type="javax.sql.DataSource".

于 2015-03-03T14:41:18.933 に答える
0

これは「単純なクエリ」であると言っていますが、例外エラーコードには次のことが記載されています

-142
SQLステートメントはサポートされていません

説明

データベースでサポートされていない SQL ステートメントが検出されました。このステートメントは、他の IBM® リレーショナル データベース製品に対して有効である場合もあれば、別のコンテキストで有効である場合もあります。たとえば、VALUES および SIGNAL または RESIGNAL SQLSTATE などのステートメントは、トリガー本体や SQL プロシージャーなど、特定のコンテキストでのみ使用できます。

システム
の処置: ステートメントを処理できません。

プログラマーの応答
: SQL ステートメントの構文を変更するか、プログラムからステートメントを除去してください。

達成したいことを達成する方法について DB2 SQL ガイドラインを確認し、さらに支援が必要な場合は、質問でそれを説明する必要があります。たとえば、「WSDIWC.WBPTRR1」は実際に利用可能ですか?

于 2015-01-06T05:20:14.407 に答える