2012-05-02 18 views
8

Estoy desarrollando una aplicación web sobre Play Framework 2.0.Play Framework y DB2

Desde que necesita acceder a una base de datos DB2, que añade las siguientes líneas al archivo application.conf de mi solicitud:

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 

he conectado con éxito a esta base de datos, pero tengo las siguientes excepciones:

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

Para resolver esto intenté desactivar Evolutions estableciendo la siguiente línea en el archivo application.conf:

evolutions=disabled 
evolutions.enable=false 

Pero siempre obtengo las excepciones anteriores.

¿Alguien puede ayudarme en esto?

Gracias

+0

En las líneas de configuración añadidos, que es un error tipográfico, o es el parámetro real realmente el nombre de aquel? –

+0

No, es un error tipográfico, los valores que he puesto arriba son diferentes ... Por cierto he utilizado: evolutions.enabled = false no evolutions.enable = false – RedEagle

Respuesta

2

A DB2 -204 SQLCODE Medios:

el objeto identificado por su nombre no está definido en el subsistema DB2. Este SQLCODE se puede generar para cualquier tipo de objeto DB2.

...

Compruebe que el nombre del objeto se ha especificado correctamente en la sentencia SQL, incluyendo los calificadores necesarios. Si es correcto, asegúrese de que el objeto exista en el sistema antes de volver a enviar la declaración.

Parece que la tabla DB2ADMIN.PLAY_EVOLUTIONS no existe. Si debería existir, intente conectarse a la base de datos utilizando un cliente SQL y ejecute select * from DB2ADMIN.PLAY_EVOLUTIONS with ur for read only; para verificar que la tabla exista.

Además, es probable que desee utilizar en lugar de evolutions=disabled (ver la obra Git cometer providing a way to disable EvolutionPlugin through configuratio…) en el archivo application.conf.

+0

Esa es la cosa ...Todavía no tengo ningún código SQL y Evolutions está deshabilitado (con la sintaxis que especificó), así que no entiendo por qué se están ejecutando comandos SQL ... – RedEagle

7

bien ... finalmente encontramos el origen del problema ...

Como he dicho estoy usando Juega Framework 2.0 y estaba trabajando en las formas del proyecto tutorial que viene con esta versión del juego ...

Como resulta que el comando para deshabilitar Evoluciones no sea:

evoluciones = deshabilitado evolución = deshabilitado

... Pero en lugar:

evolutionplugin = discapacitadas

Gracias