GroupSession
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以上、宜しくお願いします。
GroupSessionは組み込みモードでH2を起動しているので、他のPCから接続はできないと思いますが・・・
Groupsession2は、組み込みモードで起動しているので、そのままだと別のサーバからアクセスできないから、H2 Database Engineを入れてサーバモードで起動させてGsession2の設定を変えるか。 H2 Database Engineは、経験が0なのでPostgresSQLで試してみました。やってみるとPostgresSQLだと、簡単に切り替えることができました。 PostgresSQLだとH2 DatabaseEngineのような処理速度の恩恵が得られないから、その辺を考える余裕があれば、PostgresSQLで管理が楽々に!! ちなみに開発機は、WindowsXPですけど。特に問題はないと思います。 phpPgAdminが使えて楽に管理できるし。初期開発はDBAよりは使えると思います! それにしてもgroupsession2の設計は、親切で参考になります。 う~ん眠いZzzz
役に立つかわがりませんが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も)できると思います。# なんか間違ってる気がするサーバ起動用なんで自己責任でお願いします。
色々なアドバイスありがとうございます。GSH2Util.javaのソースコードを変えサーバモードでの起動に成功しましたが、下記のコマンドを実行しないと外部PCからの接続ができません。java -cp h2_1.0.jar org.h2.tools.Server -webAllowOthers -tcpAllowOthers -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版ではこれに該当する環境ファイルはないのでしょうか?以上、宜しくお願いします。
TOP