html5网站建设平台,模版破解免费wordpress,公众号开发商咨询电话,网站建设是半年的持久战我一直在愉快地使用XAMPP进行开发#xff0c;直到不得不将其托管在可通过Internet访问的某个地方#xff0c;供客户端进行测试和使用。 我有一个仅具有384 RAM的VPS#xff0c;并且需要快速找到一种方法#xff0c;因此决定将XAMPP安装到VPS中。 由于内存不足#xff0c;因… 我一直在愉快地使用XAMPP进行开发直到不得不将其托管在可通过Internet访问的某个地方供客户端进行测试和使用。 我有一个仅具有384 RAM的VPS并且需要快速找到一种方法因此决定将XAMPP安装到VPS中。 由于内存不足因此当MySQL运行时即使初始Java堆大小设置为64mTomcat也无法启动。 在移至OpenShift之前我设法将网站临时托管在Jelastic中。 我玩弄了将数据库和应用程序服务器实例合并在1个JVM中的想法以减少RAM使用与运行MySQL Tomcat相比。 搜索Internet之后我发现了与Tomcat一起运行HSQL服务器实例的几篇文章。 毫无疑问我必须先更新站点以使其与HSQL兼容但是作为POC概念验证尝试我决定探索在Spring容器中运行HSQL服务器实例的可行性。 像在Spring中的bean一样运行HSQL服务器有几个原因 1.多合一配置。 所需配置的一切都在Spring中完成。 Net中有一些示例可以与Tomcat一起运行HSQL实例但这需要向Tomcat中添加内容请参见下面的链接。 2.应用程序服务器独立性。 “理论上”用引号表示因为我仅在Tomcat中成功对其进行了测试由于一切都在Spring中完成因此不需要或几乎不需要在应用服务器中进行配置。 HSQL服务器“ bean”还旨在以网络模式不是进程内例如mem或文件启动实例。 原因如下 1.“ mem”进程内访问是最快的但不是持久的。 还有其他一些方法可以使用Spring的spring-jdbc标签来启动“ mem”数据源这是一种更好的方法。 2.“文件”进程内访问是持久性的但与“内存”一样它只能在Java进程内访问。 3.网络模式hsql是持久性的并且可以使用外部JDBC客户端工具访问。 这对于故障排除和验证很有用。 阅读HSQLDB的文档后下面是执行HSQL服务器实例bean生命周期管理的代码 package org.gizmo.hsql.spring;import java.io.IOException;
import java.util.Properties;import org.hsqldb.Server;
import org.hsqldb.persist.HsqlProperties;
import org.hsqldb.server.ServerAcl.AclFormatException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.SmartLifecycle;public class HyperSqlDbServer implements SmartLifecycle
{private final Logger logger LoggerFactory.getLogger(HyperSqlDbServer.class);private HsqlProperties properties;private Server server;private boolean running false;public HyperSqlDbServer(Properties props){properties new HsqlProperties(props);}Overridepublic boolean isRunning(){if(server ! null)server.checkRunning(running);return running;}Overridepublic void start(){if(server null){logger.info(Starting HSQL server...);server new Server();try{server.setProperties(properties);server.start();running true;}catch(AclFormatException afe){logger.error(Error starting HSQL server., afe);}catch (IOException e){logger.error(Error starting HSQL server., e);}}}Overridepublic void stop(){logger.info(Stopping HSQL server...);if(server ! null){server.stop();running false;}}Overridepublic int getPhase(){return 0;}Overridepublic boolean isAutoStartup(){return true;}Overridepublic void stop(Runnable runnable){stop();runnable.run();}
} 简化的Spring配置 server.database.0file:d:/hsqldb/demobaseserver.dbname.0demobaseserver.remote_opentruehsqldb.reconfig_loggingfalse 在Tomcat中启动Spring时的示例输出 [Server1e893ae]: [Thread[pool-2-thread-1,5,main]]: checkRunning(false) entered
[Server1e893ae]: [Thread[pool-2-thread-1,5,main]]: checkRunning(false) exited
[Server1e893ae]: Initiating startup sequence...
[Server1e893ae]: Server socket opened successfully in 7 ms.
Sep 27, 2012 9:26:23 AM org.hsqldb.persist.Logger logInfoEvent
INFO: checkpointClose start
Sep 27, 2012 9:26:23 AM org.hsqldb.persist.Logger logInfoEvent
INFO: checkpointClose end
[Server1e893ae]: Database [index0, id0, dbfile:d:/hsqldb/demo
base, aliasdemobase] opened sucessfully in 442 ms.
[Server1e893ae]: Startup sequence completed in 451 ms.
[Server1e893ae]: 2012-09-27 09:26:23.395 HSQLDB server 2.2.8 is online on port
9001
[Server1e893ae]: To close normally, connect and execute SHUTDOWN SQL
[Server1e893ae]: From command line, use [Ctrl][C] to abort abruptly 相关链接 http://hsqldb.org/doc/2.0/guide/index.html http://dkuntze.wordpress.com/2009/01/28/hsql-on-tomcat/ http://www.ibm.com/developerworks/data/library/techarticle/dm-0508bader/ 参考 YK的Workshop博客中的JCG合作伙伴 Allen Julia 在Spring中嵌入了HSQLDB服务器实例 。 翻译自: https://www.javacodegeeks.com/2012/11/embedding-hsqldb-server-instance-in-spring.html