2012-05-02 38 views
8

Tôi đang develloping một ứng dụng web trên Play Framework 2.0.Khung chơi và DB2

Vì tôi cần phải truy cập vào một cơ sở dữ liệu DB2, tôi đã thêm các dòng sau vào tập tin application.conf ứng dụng của tôi:

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 

Tôi đã kết nối thành công đến DB này nhưng có những ngoại lệ sau:

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

Để giải quyết vấn đề này, tôi đã cố vô hiệu hóa Evolutions thiết lập dòng sau trong file application.conf:

evolutions=disabled 
evolutions.enable=false 

Nhưng tôi đang nhận được các ngoại lệ trên.

Có ai có thể giúp tôi về điều này không?

Cảm ơn

+0

Trong dòng cấu hình bổ sung, đó là một lỗi đánh máy, hoặc là tham số thực tế thực sự đặt tên đó? –

+0

Không, đó là một lỗi đánh máy, các giá trị tôi đã thiết lập khác nhau ... Bằng cách này tôi đã sử dụng: evolutions.enabled = false không evolutions.enable = false – RedEagle

Trả lời

2

Một DB2 -204 SQLCODE phương tiện:

Đối tượng xác định bởi tên không được định nghĩa trong hệ thống phụ DB2®. SQLCODE này có thể được tạo ra cho bất kỳ kiểu đối tượng DB2 nào.

...

Xác minh rằng tên đối tượng đã được chỉ định chính xác trong câu lệnh SQL, bao gồm bất kỳ vòng loại bắt buộc nào. Nếu đúng, đảm bảo rằng đối tượng tồn tại trong hệ thống trước khi gửi lại câu lệnh.

Dường như bảng DB2ADMIN.PLAY_EVOLUTIONS không tồn tại. Nếu nó tồn tại, hãy thử kết nối với cơ sở dữ liệu bằng cách sử dụng một máy khách SQL và thực hiện select * from DB2ADMIN.PLAY_EVOLUTIONS with ur for read only; để xác minh bảng tồn tại.

Ngoài ra, bạn có thể muốn sử dụng thay vì evolutions=disabled (xem Play Git cam kết providing a way to disable EvolutionPlugin through configuratio…) trong tệp application.conf của bạn.

+0

Đó là điều ...Tôi vẫn không có bất kỳ mã SQL và Evolutions bị vô hiệu hóa (với cú pháp bạn chỉ định), vì vậy tôi không hiểu tại sao các lệnh SQL đang được thực thi ... – RedEagle

7

OK ... Cuối cùng phát hiện ra nguồn gốc của vấn đề ...

Giống như tôi đã nói rằng tôi đang sử dụng Chơi Framework 2.0 và đang làm việc tại các hình thức dự án hướng dẫn mà đi kèm với phiên bản này của Play ...

As it turns out the command to disable evolutions is neither:

evolutions = disabled evolution = disabled

... But rather:

evolutionplugin = disabled

Cảm ơn