フォーラム

GroupSession

フォーラム
GroupSessionについての自由な情報交換の場としてご利用ください

GroupSessionフォーラム:投稿一覧

 
フォーラム:00_インストール・設定
複数Group Sessionの設置について
[ 1701 ] 複数Group Sessionの設置について

質問失礼します。

実運用、デバッグ用と複数のGroup SessionをTomcatのwebappディレクトリ内に設置したのですが、
どうも不特定のタイミングでデータベースが壊れてしまうようです。(バックアップから復旧可能)
どちらも同じデータベースを参照しているのですが、
このように同一のデータベースを使用した運用は問題があるでしょうか?
(当方、JAVA及びH2 databaseにはあまり明るくありません。)
どうぞよろしくお願いいたします。

※なお、現在環境およびログが取得できない状況につき、質問のみにて失礼します。

投稿者task
最新書き込み2009/01/25 12:39:15
[ 1702 ] Re: 複数Group Sessionの設置について

> どちらも同じデータベースを参照しているのですが、
> このように同一のデータベースを使用した運用は問題があるでしょうか?
> (当方、JAVA及びH2 databaseにはあまり明るくありません。)

どうやって同じデータベースを参照させているのですか?

投稿者CLS
最新書き込み2009/01/26 08:41:05
[ 1703 ] Re: 複数Group Sessionの設置について

返信ありがとうございます。

データベースに関しては
http://www.gs.sjts.co.jp/v2/support/datasetting.html
を参考に、gsdata.confを編集してパスを設定しています。
このgsdata.confは設置したGroup Session全て同じ設定を使用しております。

投稿者task
最新書き込み2009/01/26 09:16:19
[ 1704 ] Re: 複数Group Sessionの設置について

以下、ログです。
環境: Windows2000/Apache Tomcat 5.5.27/Group Session Version 2.1.3

org.h2.jdbc.JdbcSQLException: 一般エラー: java.lang.RuntimeException: File ID mismatch got=0 expected=272 pos=29577 false org.h2.store.DiskFile:C:\Program Files\Apache Software Foundation\Tomcat 5.5\db\gs2db\gs2db.index.db blockCount:0
General error: java.lang.RuntimeException: File ID mismatch got=0 expected=272 pos=29577 false org.h2.store.DiskFile:C:\Program Files\Apache Software Foundation\Tomcat 5.5\db\gs2db\gs2db.index.db blockCount:0; SQL statement:
select CMN_USRM.USR_JKBN as USR_JKBN, CMN_USRM_INF.USI_SEI as USI_SEI, CMN_USRM_INF.USI_MEI as USI_MEI, BBS_FOR_INF.BFI_SID as BFI_SID, BBS_FOR_INF.BFI_NAME as BFI_NAME, THRE_INF.BTI_SID as BTI_SID, THRE_INF.BTI_TITLE as BTI_TITLE, BBS_THRE_SUM.BTS_WRT_CNT as BTS_WRT_CNT, BBS_THRE_SUM.BTS_WRT_DATE as BTS_WRT_DATE from CMN_USRM, CMN_USRM_INF, BBS_FOR_INF, BBS_FOR_MEM, BBS_THRE_SUM, ( select * from BBS_THRE_INF where BTI_SID not in ( select BTI_SID from BBS_THRE_VIEW where BIV_VIEW_KBN = 1 and USR_SID = ? ) ) THRE_INF where BBS_FOR_INF.BFI_SID = THRE_INF.BFI_SID and BBS_FOR_INF.BFI_SID = BBS_FOR_MEM.BFI_SID and BBS_FOR_MEM.USR_SID = ? and THRE_INF.BTI_SID = BBS_THRE_SUM.BTI_SID and BBS_THRE_SUM.BTS_EUID = CMN_USRM.USR_SID and BBS_THRE_SUM.BTS_EUID = CMN_USRM_INF.USR_SID order by BBS_THRE_SUM.BTS_WRT_DATE desc

投稿者task
最新書き込み2009/01/26 10:05:25
[ 1705 ] Re: 複数Group Sessionの設置について

[50000-106]
at org.h2.message.Message.getSQLException(Message.java:103)
at org.h2.message.Message.convert(Message.java:274)
at org.h2.message.Message.convert(Message.java:243)
at org.h2.command.Command.executeQueryLocal(Command.java:143)
at org.h2.command.Command.executeQuery(Command.java:122)
at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at jp.groupsession.v2.bbs.dao.BulletinDao.getNotReadThreadList(BulletinDao.java:1000)
at jp.groupsession.v2.bbs.dao.BulletinDao.getNotReadThreadList(BulletinDao.java:911)
at jp.groupsession.v2.bbs.main.BbsMainBiz.setInitData(BbsMainBiz.java:41)
at jp.groupsession.v2.bbs.main.BbsMainAction.__doInit(BbsMainAction.java:81)
at jp.groupsession.v2.bbs.main.BbsMainAction.executeAction(BbsMainAction.java:52)
at jp.groupsession.v2.struts.AbstractGsAction.execute(AbstractGsAction.java:123)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at

投稿者task
最新書き込み2009/01/26 10:06:51
[ 1706 ] Re: 複数Group Sessionの設置について

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at jp.co.sjts.util.http.filter.FilterEncoding.doFilter(FilterEncoding.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)


at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)

投稿者task
最新書き込み2009/01/26 10:07:07
[ 1707 ] Re: Re: 複数Group Sessionの設置について

GroupSessionのデータベースは組込みモードで起動しています。
私の予想ですが複数のアプリ(複数のGroupSession)から更新されることを想定していないと
おもうので、危険かもしれません。

複数のGroupSessionで同じDBを参照したい理由を教えていただけますか?
何か別の方法で解決できるかもしれません。

投稿者CLS
最新書き込み2009/01/26 10:18:56
[ 1708 ] Re: 複数Group Sessionの設置について

やはりそうですか・・・
複数設置の理由はグループごとにプラグインON/OFFの設定をできないため、
公開用とは別に管理用にもうひとつ用意し、(ソースレベルで)DBAをONにしておくことを考えました。
他にも、あるグループには使用させたくないプラグインがあるといったケースが多いので、
グループごとにプラグインの表示/非表示を制限できる設定があると良いのですが・・・

投稿者task
最新書き込み2009/01/26 10:38:56
[ 1715 ] Re: 複数Group Sessionの設置について

BLOGの方でH2をServerModeで動かす方法が載っています。
こちらを参考に、ServerModeで動かしてみてはどうでしょうか?

http://gsession.blog69.fc2.com/blog-entry-53.html

#私も結果を知りたいので、試してみたらSummaryを書いてもらえると助かります

投稿者hj
最新書き込み2009/01/27 12:46:54
[ 2804 ] サーバーモードの立ち上げ(1)

業務で必要になったのでサーバモードの立ち上げにトライしてみました。

変更するファイル:GSH2ServerUtil.java

参照クラスの追加(GSH2Util.javaを参照):
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.Enumeration;
import java.util.ResourceBundle;
import java.util.Vector;
import jp.co.sjts.util.Encoding;
import jp.co.sjts.util.jdbc.DataSourceModel;
import org.h2.tools.RunScript;import org.xml.sax.SAXException;

投稿者kon
最新書き込み2010/03/19 11:23:37
[ 2805 ] サーバーモードの立ち上げ(2)

**************************************************
サーバーインスタンスのstatic化

public class GSH2ServerUtil implements IDbUtil {
/** ロギングクラス */
private static Log log__ = LogFactory.getLog(GSH2ServerUtil.class);
/** DB PORT */
private static final int DB_PORT__ = 9092;
/** DB名 */
private static final String DB_NAME__ = "gs2db";

->変更後
public class GSH2ServerUtil implements IDbUtil {
/** ロギングクラス */
private static Log log__ = LogFactory.getLog(GSH2ServerUtil.class);
/** DB PORT */
private static final int DB_PORT__ = 9092;
/** DB名 */
private static final String DB_NAME__ = "gs2db";
/** Server */
private static Server server = null;

**************************************************
サーバー起動方法の変更

// H2サーバを起動(別スレッド)
Server server = Server.createTcpServer(
new String[] {
"-baseDir", dbDir,
"-tcpPort", port,
"-tcpAllowOthers"
});

->変更後
server = Server.createTcpServer(
new String[] {
"-baseDir", dbDir,
"-tcpPort", port,
"-tcpAllowOthers"
});

投稿者kon
最新書き込み2010/03/19 11:24:49
[ 2806 ] サーバーモードの立ち上げ(3)

**************************************************
サーバー停止方法の変更
public void shutdownDbServer(String rootPath, Connection con) throws Exception {
PreparedStatement pstmt = null;
try {
SqlBuffer sql = new SqlBuffer();
sql.addSql("SHUTDOWN");
pstmt = con.prepareStatement(sql.toSqlString());
log__.info(sql.toLogString());
pstmt.executeUpdate();
con = null;
System.gc();

log__.info("H2 DataBaseを終了");

} catch (Exception e) {
log__.debug("H2 DataBaseの終了に失敗", e);
throw new ServletException("H2 DataBaseの終了に失敗", e);
// } finally {
// JDBCUtil.closeConnection(con);
}
}

->変更後
public void shutdownDbServer(String rootPath, Connection con) throws Exception {
try{
server.stop();
} catch (Exception e) {
log__.debug("H2 DataBaseの終了に失敗", e);
throw new ServletException("H2 DataBaseの終了に失敗", e);
}
}

**************************************************
DB初期化方法の変更

public void init(String rootPath)の変更
public boolean isH2v11(String path)の追加
public void convertH2v11tov12(String rootPath)の追加
private DataSourceModel getDataSourceModel(String appRoot)の追加
(上記はGSH2Util.javaと同等のため割愛)

投稿者kon
最新書き込み2010/03/19 11:26:19
[ 2807 ] サーバーモードの立ち上げ

上記はGS2のバージョンは2.5.3を元に変更しました。

サーバ動作させるためにはGs2Resources.propertiesをServerモードに
する必要があります。

------
とりあえずは動作していますが、エラー処理や[Server]のstatic処理が
これでよかったのかは自信がありません。
今回の投稿を人柱に確かなソースが築きあげられればいいのですが。

投稿者kon
最新書き込み2010/03/19 11:31:17
スレッドURLhttps://groupsession.jp/wbs/bulletin/bbs080.do?bbs010forumSid=1&threadSid=552
 


TOP