我已经在OpenShift上创建了一个Tomcat 7缩放应用程序(使用2个小齿轮(,其中包括MySQL墨盒,我有一个使用Git部署到它的战争文件。
。为了处理数据库事务,我总是实现一个ServletContextListener,该servletContextListener用这样的数据源对象:
@Resource(name =" jdbc/mysqlds; quot;(
私有数据源数据源;
然后在上下文化方法上:
公共空白上下文启动(ServletContextevent e(
servletContext context = e.getServletContext((;
上下文。
然后由我称为dbHandler的对象使用,而不是管理所有数据库事务。到目前为止,这与单个装备(无缩放(都很好,我什至不需要更改注释上的任何内容,因为默认情况下,如果您包括MySQL墨盒,总会有一个称为" JDBC/MySQLDS"的资源。在git repo中的.openshift/context.xml文件中。
在缩放应用程序的日志上,我检测到了:
org.apache.catalina.core.standardcontext startInternal
严重:错误听听
严重:context [/myapp]启动由于以前的错误而失败
我如何在缩放应用程序上进行此工作,而不会让servlet上下文失败?
似乎数据源不是问题...毕竟,应用程序可以连接到mySQL dataSource file,并且问题是由haproxy墨盒引起的。应用程序根部的任何内容haproxy墨盒都关闭,导致503错误。
这个答案帮助我查明了问题:
OpenShift Layer4连接,应用不会启动