2017-02-28 8 views
2

SchemaSpy(5.0.0)を使用してInformixデータベースのレポートを生成しています。 それを実行している間、私は「収集スキーマ詳細」の最後のステップの間に、次のエラーを取得:SchemaSpy - レポート作成中のエラーメッセージ

java.sql.SQLException: The cursor has been previously released and is unavailable. 
    at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408) 
    at com.informix.jdbc.IfxSqli.addException(IfxSqli.java:3187) 
    at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3467) 
    at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2378) 
    at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2303) 
    at com.informix.jdbc.IfxSqli.executeFetch(IfxSqli.java:2037) 
    at com.informix.jdbc.IfxSqli.getaRow(IfxSqli.java:4077) 
    at com.informix.jdbc.IfxResultSet.next(IfxResultSet.java:494) 
    at com.informix.jdbc.IfxDatabaseMetaData.getImportedKeys(IfxDatabaseMetaData.java:5524) 
    at net.sourceforge.schemaspy.model.Table.connectForeignKeys(Table.java:106) 
    at net.sourceforge.schemaspy.model.Database.connectTables(Database.java:984) 
    at net.sourceforge.schemaspy.model.Database.<init>(Database.java:83) 
    at net.sourceforge.schemaspy.SchemaAnalyzer.analyze(SchemaAnalyzer.java:211) 
    at net.sourceforge.schemaspy.Main.main(Main.java:42) 
Caused by: java.sql.SQLException 
    at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408) 
    at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3472) 

私はバージョン4.1.0(も4.10.8.1を試してみました)でのInformix JDBCドライバを使用しています。不思議なことに、このドライバにはBSONライブラリも必要です。

何が問題なのですか?

答えて

2

私は、上記のドライバ4.Xを古いバージョンに置き換えることで、この問題を解決することができました。ドライバがバギーであるか、SchemaSpyが新しい4.Xドライバと互換性がないと思われます。動作したドライバは、最新の3.Xドライバ(正確には3.70.JC8)でした。

+1

良い発見。可能であれば、この問題はIBM/Informixのテクニカルサポートに報告する必要があります。バックドアチャネルは実際の顧客レポートほど良くはありません。 –

3

ジョナサンと100%同意する。これは、IBMテクニカル・サポートに報告する必要があります。 IBMは年間約3またはFixpackをリリースしていますが、Informix 12.10ユーザーには罰せられる理由はありません。サービスリクエストを開くことは素晴らしいことです。私はschemaSpyが大好き!

エリック

+0

上記の問題の修正プログラムはありますか?またはこれを追跡するinformixチケットがありますか? 新しいinformixドライバでも同じ問題があります。4.10.JC9 Liquibaseで初期クエリを実行します。 informixドライバ3.70.JC5の古いバージョンでは問題ありません –

0

サーバが選択を行うに失敗し、プライマリキーのリストを取得しようとすると、クライアントにエラーが返され、スタックを見て:

java.sql.SQLException: The cursor has been previously released and is unavailable. 
    at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408) 
    at com.informix.jdbc.IfxSqli.addException(IfxSqli.java:3187) 
    at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3467) <--- means error ;) 
    at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2378) 
    at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2303) 
    at com.informix.jdbc.IfxSqli.executeFetch(IfxSqli.java:2037) 
    at com.informix.jdbc.IfxSqli.getaRow(IfxSqli.java:4077) 
    at com.informix.jdbc.IfxResultSet.next(IfxResultSet.java:494) 
    at com.informix.jdbc.IfxDatabaseMetaData.getImportedKeys(IfxDatabaseMetaData.java:5524) 

私は迅速をしましたデータベースstores_demoに対する私のサーバーのいずれかで4.10.JC8、それはglichなく完了してテスト:

d:\JJTMP>java -jar \jjtmp\schemaSpy_5.0.0.jar -t informix -db stores7 -s informix -u informix -p password -o \jjtmp -host 420ito:9088 -server ids1210 -dp \infx\jdbc410jc8x\lib\ifxjdbc.jar 
Using database properties: 
    [\jjtmp\schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/informix.properties 
Gathering schema details....................................................................(4sec) 
Writing/graphing summary..............(7sec) 
Writing/diagramming details.................................................................(6sec) 
Wrote relationship details of 65 tables/views to directory '\jjtmp' in 19 seconds. 
View the results by opening \jjtmp\index.html 

d:\JJTMP> 

あなたはSQLIトレースを取得する場合は、なぜ目を見ることができるはずです特定のSQLでは失敗しています。 schemaSpyコマンドラインの接続文字列にSQLIDEBUGプロパティを追加して生成します。このような 何か:

d:\JJTMP>java -jar \jjtmp\schemaSpy_5.0.0.jar -t informix -db stores7 -s informix -u informix -p password -o \jjtmp -host 420ito:9088 -server ids1210 -dp \infx\jdbc410jc8x1\lib\ifxjdbc.jar -connprops SQLIDEBUG\=trace 
Using database properties: 
    [\jjtmp\schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/informix.properties 
Gathering schema details....................................................................(4sec) 
Writing/graphing summary..............(7sec) 
Writing/diagramming details.................................................................(6sec) 
Wrote relationship details of 65 tables/views to directory '\jjtmp' in 18 seconds. 
View the results by opening \jjtmp\index.html 

d:\JJTMP>dir trace* 
Volume in drive D is Data750 
Volume Serial Number is F0B7-2E46 

Directory of d:\JJTMP 

17/08/2017 11:10   2,008,706 trace1502964639886.0 
       1 File(s)  2,008,706 bytes 
       0 Dir(s) 284,868,997,120 bytes free 

が次にあなたがsqliprint/sqliprtのCSDKツールを使用してトレースファイルをデコードすることができますが

d:\JJTMP>sqliprt -notimestamp trace1502964639886.0 > trace.txt 

d:\JJTMP> 

(それはエンジンのbinディレクトリにする必要があります)。しかし、誰もが言ったように、それはかもしれませんテクニカルサポートに目を通すことをお勧めします。それはあなたのデータベース/スキーマ(他のデータベースに対して失敗するのだろうか)に特有のものかもしれませんが、getImportedKeys()はアプリケーションが何をしてもそのエラーで失敗してはいけません。

関連する問題