Chandler ServerのDBを「Derby」→「MySQL」に切替
--- 参考
Chandler Wiki Server Bundle Startup Configuration(Google翻訳)
http://translate.google.co.jp/translate?hl=ja&sl=auto&tl=ja&u=http%3A%2F%2Fchandlerproject.org%2FDocumentation%2FServerBundleStartupConfiguration%23MySQL%205%20-- 抜粋(原文)
Chandler Wiki Server Bundle Startup Configuration
http://chandlerproject.org/Documentation/ServerBundleStartupConfiguration#MySQL 5
1.Create a new database ("cosmo" for instance) on a MySQL 5 server. Make sure the default charset is utf8, and the default table engine is InnoDB.
・mysql -uroot -e"create database cosmo character set utf8"
2.Edit $OSAFSRV_HOME/etc/cosmo.properties and change the property cosmo.hibernate.dialect to org.osaf.cosmo.hibernate.CosmoMySQL5InnoDBDialect.
3.Edit $OSAFSRV_HOME/tomcat/conf/Catalina/localhost/chandler.xml
・Comment out the <Resource> definition for the Derby datasource, and uncomment the example <Resource> definition for a MySQL datasource
・Set the datasource properties to match your MySQL database server by editing the url entry and change [server] to your server name (most likely localhost) and change [db] to the name of the MySQL database you created for Cosmo.
・Make sure your username and password entries match the MySQL user information
4.Start Cosmo and the database schema will automatically be created the first time.
-- 適当翻訳
1.MySQL 5のサーバー上に新しいデータベースを(たとえば、"cosmo")を作成するぞ。デフォルトの文字セットはUTF8、およびデフォルトのテーブルのエンジンがInnoDBテーブル。
mysql -uroot -e"create database cosmo character set utf8"
2. $OSAFSRV_HOME/etc/cosmo.propertiesを編集。下記プロパティに変更してね。変更しなきゃ暴れるぞ。
cosmo.hibernate.dialect=org.osaf.cosmo.hibernate.CosmoMySQL5InnoDBDialect
※ $OSAFSRV_HOME は /home/ユーザー/chandler/osaf-server-bundle-1.1.0/ に置換えて読む。
3. $OSAFSRV_HOME/tomcat/conf/Catalina/localhost/chandler.xml を編集。
39~42行目のDerbyをコメントアウト。
<!-- Derby -->
<Resource name="jdbc/cosmo" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa" password=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:db;create=true" />
↓
<!-- Derby -->
<!--
<Resource name="jdbc/cosmo" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa" password=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:db;create=true" />
-->
その下のMySQLのコメントアウトをはずして有効化
<!-- MySQL -->
<Resource name="jdbc/cosmo" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="[user]"
password="[pass]" defaultAutoCommit="false"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://[server]:3306/[db]?useUnicode=true&characterEncoding=UTF-8" />
↓
<!-- MySQL -->
<Resource name="jdbc/cosmo" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="hogeuser"
password="hogepass" defaultAutoCommit="false"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cosmo?useUnicode=true&characterEncoding=UTF-8" />
--- chandler再起動
$ ./chandler/osaf-server-bundle-1.1.0/bin/osafsrvctl stop
$ ./chandler/osaf-server-bundle-1.1.0/bin/osafsrvctl start--- ブラウザで確認
http://さくらVPSのホスト名:8080/chandler/welcome
Chandler ServerのDBを「Derby」→「MySQL」に切替作業をしていた時に遭遇したエラー。
荒っぽい方法だが、DBを別名で作り直して再設定すると解消した。
例えば
- Dbをcosmoで作成していたら、cosmo2 のDbを新規作成。
- $OSAFSRV_HOME/tomcat/conf/Catalina/localhost/chandler.xml の、MySQLのurl="jdbc:mysql://localhost:3306/[server]?useUnicode=true&characterEncoding=UTF-8" の[server]部分を cosmo2 に編集
- chandler再起動
--- エラーログ($OSAFSRV_HOME/logs/osafsrv.log)
2011-12-14 15:56:56,042 INFO [LifecycleLoggerListener] Chandler Server 1.1.0 starting
2011-12-14 15:56:58,726 INFO [CosmoPropertyPlaceholderConfigurer] Loading properties file from URL [file:etc/cosmo.properties]
2011-12-14 15:57:12,539 INFO [DbInitializer] found schema version null
2011-12-14 15:57:12,539 ERROR [DbInitializer] Schema version does not match (null:160
2011-12-14 15:57:12,542 ERROR [[/chandler]] クラス org.osaf.cosmo.db.DbListener のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.RuntimeException: Schema version found in database does not match schema version required by server
at org.osaf.cosmo.db.DbInitializer.checkSchemaVersion(DbInitializer.java:150)
at org.osaf.cosmo.db.DbInitializer.initialize(DbInitializer.java:81)
at org.osaf.cosmo.db.DbListener.contextInitialized(DbListener.java:58)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2011-12-14 15:57:12,548 DEBUG [StandardUserService] getting user root
2011-12-14 15:57:12,596 ERROR [[/chandler]] クラス org.osaf.cosmo.ui.config.ConfigurationListener のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.IllegalStateException: overlord not in database
at org.osaf.cosmo.ui.config.ServletContextConfigurer.setServerAdmin(ServletContextConfigurer.java:60)
at org.osaf.cosmo.ui.config.ServletContextConfigurer.configure(ServletContextConfigurer.java:50)
at org.osaf.cosmo.ui.config.ConfigurationListener.contextInitialized(ConfigurationListener.java:53)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2011-12-14 15:57:12,597 ERROR [StandardContext] Error listenerStart
2011-12-14 15:57:12,597 ERROR [StandardContext] 以前のエラーのためにコンテキストの起動が失敗しました [/chandler]
2011-12-14 15:57:12,608 INFO [LifecycleLoggerListener] Chandler Server 1.1.0 stopping
2011-12-14 15:57:13,543 INFO [Catalina] Server startup in 18774 ms
--- 調査
Re: [chandler-users] Error on Cosmo server startup(Google翻訳)
http://translate.google.co.jp/translate?hl=ja&sl=auto&tl=ja&u=http%3A%2F%2Fwww.mail-archive.com%2Fchandler-users%40osafoundation.org%2Fmsg01246.html-- 抜粋(原文)
Re: [chandler-users] Error on Cosmo server startup
http://www.mail-archive.com/chandler-users@osafoundation.org/msg01246.htmlYou have to erase the database tables if everything fails in the first
startup...
The second time, the server things that the database is ok, perhaps only
cheching if the table are created or something similar....→ユー、DB切替ちゃいなよと言ってる風。これをヒントに作業をした。
Log of #osaf-qa for 20070426, from 0000h to 2400h(Google翻訳)
http://translate.google.co.jp/translate?hl=ja&sl=auto&tl=ja&u=http%3A%2F%2Fchandlerproject.org%2Fscript%2FgetIrcTranscript.cgi%3Fchannel%3Dosaf-qa%26date%3D20070426-- 抜粋(原文)
Log of #osaf-qa for 20070426, from 0000h to 2400h
http://chandlerproject.org/script/getIrcTranscript.cgi?channel=osaf-qa&date=2007042614:22 admc > java.lang.RuntimeException: Schema version does not match server version
14:22 admc > at org.osaf.cosmo.db.DbInitializer.checkSchemaVersion(DbInitializer.java:147
14:23 bear > that's from the mysql having been setup from a checkpoint
14:23 bear > the checkpoint version/schema # is different than the 0.6.1 version/schema# only because of the text
14:23 bear > the checkpoint is 0.6.1-CP-....
14:23 bear > and 0.6.1 just has 0.6.1
14:24 bear > I wonder if there is a way to change the schema # in mysql
14:28 admc > well wiping mysql is fine
14:28 admc > let me try that→MySQLのチェックポイントのバージョン、スキーマずれ?を指摘している。
多分原因はコレなんだけど、時間の関係でこの案を深く追っていない。すまんな。
荒っぽい対応方法その2、Chandler Server再インストール。たぶんいけるじゃないかと思うが、試してない。