2012-05-02 12 views
8

私はPlay Framework 2.0でWebアプリケーションを開発しています。Play FrameworkとDB2

私はDB2データベースにアクセスする必要があるので、私は自分のアプリケーションのapplication.confファイルに次の行を追加しました:

db.mydb.driver=com.ibm.db2.jcc.DB2Driver 
db.mydb.url="jdbc:db2://host:port/databaseName" 
db.mydb.user=user 
db.mydb.password=pass 
db.mydb.jndiName=databaseName 

私はこのDBにsucessfully接続されているが、次の例外だ:

[info] play - datasource [jdbc:db2://host:port/databaseName] bound to JNDI as databaseName 
[info] play - database [databaseName] connected at jdbc:db2://host:port/databaseName 
[warn] application - play_evolutions table already existed 
[error] application - 

! @6a8ib4hd7 - Internal server error, for request [GET /] -> 

play.api.UnexpectedException: Unexpected exception [SqlSyntaxErrorException: DB2 
SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2ADMIN.PLAY_EVOLUTIONS, DRI 
VER=4.12.55] 
     at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$$anon 
fun$1.apply(ApplicationProvider.scala:134) ~[play_2.9.1.jar:2.0] 
     at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$$anon 
fun$1.apply(ApplicationProvider.scala:112) ~[play_2.9.1.jar:2.0] 
     at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2] 
     at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3.apply 
(ApplicationProvider.scala:112) ~[play_2.9.1.jar:2.0] 
     at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3.apply 
(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0] 
     at scala.Either$RightProjection.flatMap(Either.scala:277) ~[scala-librar 
y.jar:0.11.2] 
Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-2 
04, SQLSTATE=42704, SQLERRMC=DB2ADMIN.PLAY_EVOLUTIONS, DRIVER=4.12.55 
     at com.ibm.db2.jcc.am.hd.a(hd.java:676) ~[db2jcc4.jar:na] 
     at com.ibm.db2.jcc.am.hd.a(hd.java:60) ~[db2jcc4.jar:na] 
     at com.ibm.db2.jcc.am.hd.a(hd.java:127) ~[db2jcc4.jar:na] 
     at com.ibm.db2.jcc.am.mn.c(mn.java:2621) ~[db2jcc4.jar:na] 
     at com.ibm.db2.jcc.am.mn.d(mn.java:2609) ~[db2jcc4.jar:na] 
     at com.ibm.db2.jcc.am.mn.a(mn.java:2085) ~[db2jcc4.jar:na] 

これを解決するために、私はapplication.confファイルで次の行を設定するEvolutionsを無効にしようとしました:

evolutions=disabled 
evolutions.enable=false 

しかし、私はいつも上記の例外を取得しています。

誰もが私にこれを助けることができますか?

おかげ

+0

は、タイプミスということである、または実際のパラメータは本当にという? –

+0

いいえ、それはタイプミスだ、私が設定した値が異なる... 私が使用ところで: はevolutions.enabled = – RedEagle

答えて

2

DB2 -204 SQLCODE手段:

名前で識別されるオブジェクトは、DB2®サブシステムで定義されていません。このSQLCODEは、任意のタイプのDB2オブジェクトに対して生成できます。

...

は、オブジェクト名が正しく必須の修飾子を含めて、SQL文で指定されたことを確認します。正しい場合は、ステートメントを再提出する前に、オブジェクトがシステムに存在することを確認してください。

テーブルDB2ADMIN.PLAY_EVOLUTIONSが存在しないようです。存在する場合は、SQLクライアントを使用してデータベースに接続し、テーブルが存在することを確認するためにselect * from DB2ADMIN.PLAY_EVOLUTIONS with ur for read only;を実行してください。

はまた、おそらくあなたのapplication.confファイルに代わりのevolutions=disabledを(プレイGitがproviding a way to disable EvolutionPlugin through configuratio…をコミット参照)を使用します。私はFramework 2.0を使用しています再生やプレイのこのバージョンに付属しているフォームのチュートリアルのプロジェクトで働いていた言ったように

+0

偽= evolutions.enableない 偽のことだそれ...私はまだSQLコードがなく、Evolutionsは(あなたが指定した構文で)無効になっているので、なぜSQLコマンドが実行されているのかわかりません... – RedEagle

7

はOK ...最後に...

の問題の原因を見つけました...

それはエボリューションを無効にするには、コマンドを結局のところでもありません:

進化=無効 進化=無効

...むしろ:

evolutionplugin =無効

おかげ追加コンフィグラインで