2013-10-02 3 views
1

Openshift에는 단지 한 번의 클릭만으로 매우 신속하게 설치할 수있는 응용 프로그램이 있기 때문에 EC2에서 OpenShift로 마이그레이션했습니다.하지만이 문제는 현재 가지고있는 문제 중 하나입니다. MySql 카트리지.OpenShift 플랫폼에서 MySql을 사용하는 Spring Webapp

내 Spring Webapp가 OpenShift에 배포되어 MySQL 데이터베이스의 USERNAME, PASSWORD가 하드 코드되지 않았습니다. 대부분의 포럼에서는 환경 변수를 사용하여 db url, user, password를 지정했지만 아직 작동하지는 않습니다. 하지만 최소한 db URL, 사용자 이름 및 암호를 하드 코드해도 문제가되지 않습니다.

모든 유용하고 유용한 해결책은 대단히 감사하겠습니다. 당신은 스케일 응용 프로그램을 실행하는 경우

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [null]; error code [0]; Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection] with root cause 
com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source. 
     at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319) 
     at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557) 
     at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477) 
     at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525) 
     at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128) 
     at org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:79) 
     at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:277) 
     at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) 
     at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169) 
     at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.extractPhysicalConnection(ConnectionProxyHandler.java:82) 
     at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:138) 
     at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81) 
     at com.sun.proxy.$Proxy63.prepareStatement(Unknown Source) 
     at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:147) 
     at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:166) 
     at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:145) 
     at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1720) 
     at org.hibernate.loader.Loader.doQuery(Loader.java:828) 
     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289) 
     at org.hibernate.loader.Loader.doList(Loader.java:2447) 
     at org.hibernate.loader.Loader.doList(Loader.java:2433) 
     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2263) 
     at org.hibernate.loader.Loader.list(Loader.java:2258) 
     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470) 
     at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) 
     at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:196) 
     at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1161) 
     at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) 
     at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:252) 
     at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:77) 
+0

로그는 무엇을 말하고 있습니까? – TheSteve0

+0

은 허용 된 최대 시도 횟수 (30)를 초과하여 성공합니다. 마지막 획득 시도 예외 : com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : 통신 링크 실패 서버에 성공적으로 전송 된 마지막 패킷은 0 밀리 초 전입니다. 드라이버가 서버로부터 패킷을받지 못했습니다. – Warner

+1

스프링 구성의 관련 부분을 제공 할 수 있다면 도움이 될 것입니다. –

답변

0

, 당신은 또한 표준 3306되지 않습니다으로 당신은 당신의 기어로 sshing 및 env | grep MYSQL을 실행하여이를 확인할 수 있으며, 데이터베이스 포트에 대한 환경 변수를 사용할 필요가 그리고 그것이 무엇을 인쇄하는지보십시오.