2012-05-02 15 views
8

Sto sviluppando un'applicazione Web su Play Framework 2.0.Play Framework e DB2

Da quando ho bisogno di accedere a un database DB2, ho aggiunto le seguenti righe al file di application.conf di mia domanda:

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 

ho collegato con successo a questo DB ma ho ottenuto le seguenti eccezioni:

[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] 

Per risolvere questo problema ho provato a disabilitare Evolutions impostando la seguente riga nel file application.conf:

evolutions=disabled 
evolutions.enable=false 

Ma sto sempre ricevendo le eccezioni di cui sopra.

Qualcuno può aiutarmi in questo?

Grazie

+0

Nelle righe di configurazione aggiunto, è che un errore di battitura, o è il parametro attuale davvero chiamato così? –

+0

No, è un errore di battitura, i valori ho creato sono diversi ... proposito ho usato: evolutions.enabled = false non evolutions.enable = false – RedEagle

risposta

2

A DB2 -204 SQLCODE mezzi:

l'oggetto identificato da nome non è definita nel sottosistema DB2. Questo SQLCODE può essere generato per qualsiasi tipo di oggetto DB2.

...

Verificare che il nome dell'oggetto è stato correttamente specificato nell'istruzione SQL, comprese le qualificazioni richieste. Se è corretto, assicurarsi che l'oggetto esista nel sistema prima di inviare nuovamente la dichiarazione.

Sembra che la tabella DB2ADMIN.PLAY_EVOLUTIONS non esiste. Se deve esistere, provare a connettersi al database utilizzando un client SQL ed eseguire select * from DB2ADMIN.PLAY_EVOLUTIONS with ur for read only; per verificare che la tabella esista.

Inoltre, probabilmente si desidera utilizzare invece di evolutions=disabled (vedi Git gioco commettere providing a way to disable EvolutionPlugin through configuratio…) nel file application.conf.

+0

Questa è la cosa ...Non ho ancora alcun codice SQL e le evoluzioni sono disabilitate (con la sintassi specificata), quindi non capisco perché i comandi SQL vengano eseguiti ... – RedEagle

7

OK ... finalmente trovato l'origine del problema ...

Come ho detto sto utilizzando Gioca Framework 2.0 e lavoravo nelle forme progetto tutorial che viene fornito con questa versione di Play ...

Come si scopre il comando per disattivare Evoluzioni è né:

evoluzioni = disabilitato evoluzione = disabilitato

... Ma piuttosto:

evolutionplugin = disabili

Grazie