フォーラム

GroupSession

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

GroupSessionフォーラム:投稿一覧

 
フォーラム:03_プラグイン開発フォーラム
H2DatabaseEngineへの接続方法を教えてください。
[ 1436 ] H2DatabaseEngineへの接続方法を教えてください。

H2DatabaseEngineコンソールを使用してグループセッションのDBへ接続しました。
グループセッションで使用しているテーブルの表示がありません。
INFORMATION_SCHEMAのテーブルは表示されます。
表示させるにはどのようにすれば良いのでしょうか?
グループセッションが動くOSはLinuxで、他のPCから接続しています。
接続情報は下記の通りです。
jdbc:h2:tcp://192.168.50.16/usr/local/java/apache-tomcat-6.0.18/webapps/gsession2/WEB-INF/db/gs2db/gs2db
以上、宜しくお願いします。

投稿者初心者2号
最新書き込み2008/10/29 09:23:02
[ 1445 ] Re: H2DatabaseEngineへの接続方法を教えてください。

GroupSessionは組み込みモードでH2を起動しているので、
他のPCから接続はできないと思いますが・・・

投稿者ABE
最新書き込み2008/11/01 00:22:04
[ 1446 ] Re: H2DatabaseEngineへの接続方法を教えてください。

Groupsession2は、組み込みモードで起動しているので、そのままだと
別のサーバからアクセスできないから、H2 Database Engineを入れて
サーバモードで起動させてGsession2の設定を変えるか。
H2 Database Engineは、経験が0なのでPostgresSQLで試してみま
した。やってみるとPostgresSQLだと、簡単に切り替えることができました。
 PostgresSQLだとH2 DatabaseEngineのような処理速度の恩恵が得ら
れないから、その辺を考える余裕があれば、PostgresSQLで管理が楽々に!!
 ちなみに開発機は、WindowsXPですけど。特に問題はないと思います。

 phpPgAdminが使えて楽に管理できるし。初期開発はDBAよりは使えると思います!

 それにしてもgroupsession2の設計は、親切で参考になります。
う~ん眠いZzzz

投稿者snip
最新書き込み2008/11/02 01:00:11
[ 1450 ] Re: H2DatabaseEngineへの接続方法を教えてください。

役に立つかわがりませんが

GSH2Util.java
にフィールド
private static final int DB_PG_PORT__ = 5435;
private static Server tcpServer__ = null;
private static Server pgServer__ = null;
追加し下記のメソッドを書き換える
public void startDbServer(String rootPath) throws Exception {
String port = getDbPort();
String dbDir = GsDataSourceFactory.getDbDir(rootPath);
dbDir = dbDir + File.separator + DB_NAME__;
log__.info("H2 DataBase : " + dbDir);
try {
if (tcpServer__ == null) {
tcpServer__ = Server.createTcpServer(new String[] {"-baseDir", dbDir, "-tcpPort", port ,"-tcpPassword", "gsession"}).start();
log__.info("H2 DataBase start tcp server port : " + port);
}
if (pgServer__ == null) {
pgServer__ = Server.createPgServer(new String[] {"-baseDir", dbDir, "-pgPort", Integer.toString(DB_PG_PORT__), "-pgAllowOthers"}).start();
log__.info("H2 DataBase start postgresql(odbc) server port : " + DB_PG_PORT__);
}
} catch (Exception e) {
log__.error("H2 DataBaseの起動に失敗", e);
throw new ServletException("H2 DataBaseの起動に失敗", e);
}
}
public void shutdownDbServer(String rootPath, Connection con) throws Exception {
try {
if (tcpServer__ != null) {
TcpServer.stopServer(Integer.parseInt(getDbPort()), "gsession", 0);
tcpServer__.stop();
tcpServer__ = null;
log__.info("H2 DataBase stop tcp server");
}
if (pgServer__ != null) {
pgServer__.getService().stop();
pgServer__.stop();
pgServer__ = null;
log__.info("H2 DataBase stop postgresql(odbc) server");
}
System.gc();
} catch (Exception e) {
log__.error("H2 DataBaseの終了に失敗", e);
throw new ServletException("H2 DataBaseの終了に失敗", e);
}
}
public String createUrl(String rootPath) {
String url = "jdbc:h2:tcp://localhost:" + getDbPort() + "/" + DB_NAME__;
:
:
}
とするとサーバー起動(ついでにODBCも)できると思います。
# なんか間違ってる気がするサーバ起動用なんで自己責任でお願いします。

投稿者dummy
最新書き込み2008/11/03 16:55:21
[ 1457 ] Re: H2DatabaseEngineへの接続方法を教えてください。

色々なアドバイスありがとうございます。

GSH2Util.javaのソースコードを変えサーバモードでの起動
に成功しましたが、下記のコマンドを実行しないと外部PCから
の接続ができません。
java -cp h2_1.0.jar org.h2.tools.Server -webAllowOthers -tc
pAllowOthers -pgAllowOthers

コマンドを実行するのは良いのですが、実行後、下記のメッセージ
が出力されプロンプトが表示されません。
TCP server running on tcp://localhost:9092 (others can connect)
PG server running on pg://localhost:5435 (others can connect)
Web server running on http://localhost:8082 (others can connect)

Ctrl+cでコマンドが表示されますが、その時点で接続ができなくなります。
何か良い解消方法はありませんか?

また、Windows版のH2DatabaseEngineは.h2.server.properties
の中でwebAllowOthersを切り替えることができるようですが、UNIX版で
はこれに該当する環境ファイルはないのでしょうか?

以上、宜しくお願いします。



投稿者初心者2号
最新書き込み2008/11/10 14:14:12
スレッドURLhttps://groupsession.jp/wbs/bulletin/bbs080.do?bbs010forumSid=3&threadSid=469
 


TOP